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

你可能感兴趣的文章
最长回文子序列-----动态规划
查看>>
Vue国际化实现
查看>>
设计模式:单例模式
查看>>
FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法
查看>>
双网卡一般情况不能有两个网关 (转)
查看>>
xshell 远程连接Linux
查看>>
【IOS】IOS8 TabBarItem设置自定义图片问题
查看>>
Linux计划任务及压缩归档(week2_day1)--技术流ken
查看>>
ccf算法模板
查看>>
实践案例 | 数据可视化报表应用
查看>>
微信小程序登录 该死的官方文档TypeError: the JSON object must be str, not 'bytes'
查看>>
VMware 虚拟机克隆 CentOS 6.5 之后,网络配置问题的解决方案
查看>>
Python ( 1 ) ----- 简介
查看>>
[linux基础学习]run level
查看>>
第七周学习总结
查看>>
一步步的教你安装UChome (UChome 安装教程)
查看>>
[DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成...
查看>>
P2533 [AHOI2012]信号塔
查看>>
Android电话拨号器(uri格式)与四种设置点击事件的方法
查看>>
java web中对json的使用
查看>>