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

本文共 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://woqyl.baihongyu.com/

你可能感兴趣的文章
OGG_GoldenGate数据迁移三进程Extract / Dump / Relicat(案例)
查看>>
OAF_文件系列11_实现OAF读写Excel包JXL和POI的区别(概念)
查看>>
未整理:MediaPlayer(1,2)
查看>>
c# 串口发送接收数据
查看>>
每周一荐:Objective-C的开源开发环境GNUstep
查看>>
10-C语言循环结构(一)
查看>>
python学习笔记--基础概要
查看>>
2018/11/28 scp eve-ng
查看>>
使用Django操作数据库入门
查看>>
ny106 背包问题
查看>>
nyoj228 士兵杀敌(5)插线问线
查看>>
ny712 探寻宝藏 ny61 传纸条(1)
查看>>
CSS后代选择器可能的错误认识
查看>>
Python垃圾回收机制
查看>>
Gson将参数放入实体类中进行包装之后再传递
查看>>
设置mysql5.7远程连接-----------https://blog.csdn.net/qiyueqinglian/article/details/52778230
查看>>
IOS7状态栏StatusBar官方标准适配方法
查看>>
嵌入式开发之项目---uboot 内存合集
查看>>
模式识别之ocr项目---(模板匹配&BP神经网络训练)
查看>>
python3 geohash 导入错误及解决
查看>>