博客
关于我
强烈建议你试试无所不能的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/

你可能感兴趣的文章
Linux Shell: 统计系统中占用Swap 的程序PID和占用大小
查看>>
Java通过JNI的方式调用C
查看>>
AOSuite V3.0 发布,开源JavaEE快速开发平台
查看>>
myeclipse提示“Project must be an XFire project”
查看>>
layui 之 upload组件
查看>>
进阶Java架构师必看的15本书
查看>>
uva 400 - Unix ls
查看>>
基本数据结构之ArrayList
查看>>
Eclipse引入JRE中类提示出错
查看>>
maven命令及使用
查看>>
activity在配置只支持竖屏时要注意个问题
查看>>
EditText
查看>>
1、Spark-Streaming的原理
查看>>
关于android监视器
查看>>
驰骋BPM恭喜签订,中安金路环境工程有限公司
查看>>
Angularjs中的拦截器 使用笔记
查看>>
每次打开应用时检查更新
查看>>
oracle 性能优化 04_报告及日志解读
查看>>
Xcode 插件包管理器
查看>>
PHP版本VC6与VC9、Thread Safe与None-Thread Safe等的区别
查看>>