博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql--CONVERT、FOR XML PATH解决实际问题
阅读量:6495 次
发布时间:2019-06-24

本文共 3957 字,大约阅读时间需要 13 分钟。

原文:

 

需求:每个平台分类下的门店,每个门店的名称、图片路径、评分,每个门店下的四个产品的名称、图片路径、评分

思路:

一开始门店动态化好写,用Ajax就行了。但是每个门店下面的产品,每个去请求一次查询有点不太现实。

一开始准备用每个门店的Id去发起请求,被自己蠢哭了。

在换个思路用sql语句吧

同时把这么多数据一把查出来。

 

 

 就是把这两张表拼成一张表,把数据作为一行数据在用符号分割,前台在取出来。

WITH    td          AS ( SELECT   Hishop_Stores.StoreId ,                        Hishop_Stores.StoreName ,                        Hishop_Products.FirstraceScore ,                        Hishop_Products.StoreId AS id ,                        Hishop_Products.ProductName ,                        Hishop_Products.ImageUrl1               FROM     ( SELECT    StoreId ,                                    StoreName ,                                                                        StoreImages,                                    FirstraceScore                          FROM      Hishop_Stores                        ) AS Hishop_Stores                        LEFT JOIN ( SELECT  StoreId ,                                            ProductName ,                                            FirstraceScore ,                                            ImageUrl1                                    FROM    Hishop_Products                                    WHERE   ProductName IS NOT NULL                                  ) AS Hishop_Products ON Hishop_Stores.StoreId = Hishop_Products.StoreId             )    SELECT  B.StoreId ,            B.StoreName ,            B.FirstraceScore ,                        B.StoreImages,            ( SELECT    CONVERT(VARCHAR(100), td.ProductName) + '|'                        + CONVERT(VARCHAR(100), ISNULL(td.FirstraceScore, 0))                        + '|' + CONVERT(VARCHAR(100), ISNULL(td.ImageUrl1, '无'))                        + '='              FROM      td              WHERE     td.StoreId = B.StoreId              ORDER BY  td.FirstraceScore DESC            FOR              XML PATH('')            ) AS ProductList    FROM    Hishop_Stores B        where ShopTypeId=10    GROUP BY StoreId ,            StoreName ,                        StoreImages,            B.FirstraceScore;    --ORDER BY B.FirstraceScore DESC;

 

结果:

OK

其中用到了CONVERT来转换格式,FOR XML PATH('')来实现行转列。

最后Ajax

$(function () {       var shopTypeId = getParam('shopTypeId');        $.ajax({            type: "post", url: "/API/StoreProductAJAX.ashx", data: { action: 'storelist',shopTypeId:shopTypeId },              async: false,            success: function (data)            {                                            for (var i = 0; i < data.length; i++)                 {                     var msg = data[i];                     var score = msg.FirstraceScore;                     var name = msg.StoreName;                     var list = msg.ProductList;                                          var strs = new Array(); //定义一数组                     var strsnew = new Array(); //定义一数组                     var strlist = new Array();                     strs=list.split("="); //字符分割                      for (ii = 0; ii < strs.length; ii++)                      {                          strsnew = strs[ii].split("|"); //字符分割                           for (j = 0; j < strsnew.length; j++)                            {                               strlist.push(strsnew[j]);                                                          }                      //document.write(strs[i] + "
"); //分割后的字符输出 } //document.write( strlist+ "
"); //分割后的字符输出 //alert(strsnew); //if (name == "") //{
// continue; //} if (score == 0) { if (strlist[0] == "") { $("#store").append($('
' + msg.StoreName + '
进店逛逛
')); continue; } 。。。。

这边感觉自己写的有点蠢  不知道怎么去分割输出比较好

转载地址:http://qhuyo.baihongyu.com/

你可能感兴趣的文章
zabbix-3.4 触发器
查看>>
换用代理IP的Webbrowser方法
查看>>
【视频编解码·学习笔记】7. 熵编码算法:基础知识 & 哈夫曼编码
查看>>
spark集群安装部署
查看>>
MySql 查询表字段数
查看>>
mariadb 内存占用优化
查看>>
Centos7安装编译安装zabbix2.219及mariadb-5.5.46
查看>>
Visual Studio Remote Debugger(for 2005/2008) .net远程调试<转>
查看>>
怎么获得combobox的valueField值
查看>>
浅谈C/C++中的static和extern关键字
查看>>
Console-算法[if,while]-一输入两个正整数m和n,求其最大公约数和最小公倍数
查看>>
浅谈网络协议(四) IP的由来--DHCP与PXE
查看>>
jre与jdk的区别
查看>>
全景图的种类
查看>>
git 维护
查看>>
jfinal框架下使用c3P0连接池连接sql server 2008
查看>>
Jfinal Generator 不需要生成带某个前缀的表名数组的方法
查看>>
struts2中使用标签操作静态方法等
查看>>
熬夜写了一个小游戏,向SpaceX聊表敬意
查看>>
身份证工具类
查看>>