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

你可能感兴趣的文章
读《每天懂一点成功概率学》
查看>>
Java基础知识回顾之六 ----- IO流
查看>>
C++中Reference与指针(Pointer)的使用对比
查看>>
Codeforces 846 B Math Show DFS + 贪心
查看>>
C++中关于流的概念
查看>>
网站基于vs,复选框,单选款
查看>>
ucontext实现的用户级多线程框架3(实现echo服务器)
查看>>
前向引用
查看>>
js数组练习
查看>>
android 获取手机GSM/CDMA信号信息,并获得基站信息
查看>>
《Objective-c》Foundation框架 -(字符串:NSString和NSMutableString)
查看>>
String spilt时转义特殊字符【转】
查看>>
BZOJ2331:[SCOI2011]地板——题解
查看>>
android中方法调用super(..)的相关知识
查看>>
python基础===拆分字符串,和拼接字符串
查看>>
php打印中文乱码
查看>>
直接选择排序算法
查看>>
HTTP协议详解
查看>>
JAVA面向对象-----final关键字
查看>>
document.getElementById与getElementByName的区别
查看>>