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
    
  • 相关阅读:
    C语言---堆的实现
    python的matplotlib---雷达图
    python的matplotlib饼状图
    python的matplotlib折线图
    python的matplotlib散点图学习
    python的matplotlib散点图
    C语言---队列(链表实现)
    hadoop集群启动与关闭需要输入密码
    hadoop集群启动时需要输入密码
    C语言---堆栈(链表实现)
  • 原文地址:https://www.cnblogs.com/kinpauln/p/2055755.html
Copyright © 2011-2022 走看看