zoukankan      html  css  js  c++  java
  • MsSql “with”用法

    CREATE TABLE #PRODUCT(id INT,NAME1 NVARCHAR(10))
    CREATE TABLE #DATA_ATTRIBUTE_ABOUT_PRODUCT(id INT,type1 INT)
    CREATE TABLE #DATA_ATTRIBUTE(id INT,NAME1 NVARCHAR(10),name2 NVARCHAR(10))
    INSERT INTO #PRODUCT VALUES (1,'AAA')
    INSERT INTO #PRODUCT VALUES (2,'BBB')
    INSERT INTO #DATA_ATTRIBUTE_ABOUT_PRODUCT VALUES (1,1)
    INSERT INTO #DATA_ATTRIBUTE_ABOUT_PRODUCT VALUES (1,2)
    INSERT INTO #DATA_ATTRIBUTE_ABOUT_PRODUCT VALUES (1,3)
    INSERT INTO #DATA_ATTRIBUTE_ABOUT_PRODUCT VALUES (2,2)
    INSERT INTO #DATA_ATTRIBUTE_ABOUT_PRODUCT VALUES (2,3)
    
    INSERT INTO #DATA_ATTRIBUTE VALUES (1,'COUNT','500')
    INSERT INTO #DATA_ATTRIBUTE VALUES (2,'COLOR','RED')
    INSERT INTO #DATA_ATTRIBUTE VALUES (3,'SIZE','100*200');
    
    --SELECT a.ID,a.Name,MAX(CASE WHEN a.Name1='COUNT' then a.Name2 ELSE '' end) AS [COUNT]
    --,MAX(CASE WHEN a.Name1='COLOR' then a.Name2 ELSE '' end) AS [COLOR]
    --,MAX(CASE WHEN a.Name1='SIZE' then a.Name2 ELSE '' end) AS [SIZE]
    --FROM(
    --SELECT a.id,a.Name1 AS Name,c.Name1,c.name2
    --FROM #PRODUCT a
    --LEFT JOIN #DATA_ATTRIBUTE_ABOUT_PRODUCT b ON a.id = b.id
    --LEFT JOIN #DATA_ATTRIBUTE c ON b.type1=c.id
    --) a
    --GROUP BY a.id,a.NAME;
    
    WITH TEMPTable AS 
    (
    	SELECT a.id,a.Name1 AS Name,c.Name1,c.name2
    	FROM #PRODUCT a
    	LEFT JOIN #DATA_ATTRIBUTE_ABOUT_PRODUCT b ON a.id = b.id
    	LEFT JOIN #DATA_ATTRIBUTE c ON b.type1=c.id
    )
    SELECT a.ID,a.Name,MAX(CASE WHEN a.Name1='COUNT' then a.Name2 ELSE '' end) AS [COUNT]
    ,MAX(CASE WHEN a.Name1='COLOR' then a.Name2 ELSE '' end) AS [COLOR]
    ,MAX(CASE WHEN a.Name1='SIZE' then a.Name2 ELSE '' end) AS [SIZE]
    FROM TEMPTable a
    GROUP BY a.id,a.NAME
    
    
    DROP TABLE #PRODUCT
    DROP TABLE #DATA_ATTRIBUTE_ABOUT_PRODUCT
    DROP TABLE #DATA_ATTRIBUTE
    
  • 相关阅读:
    React class & function component 的区别
    Webpack 4 + React + Typescript 搭建启动模版
    JavaScript的数据类型及其检测
    react SyntheticEvent 合成事件机制
    数组的排序
    Ajax 和 Ajax的封装
    go 结构的方法总结
    go 结构的方法2
    go struct 的方法1
    go 函数闭包
  • 原文地址:https://www.cnblogs.com/kinpauln/p/2055755.html
Copyright © 2011-2022 走看看