小编Slo*_*gic的帖子

CTE 与 UNION ALL 未按预期工作

下面的查询看似简单明了,但却产生了意想不到的结果。


CREATE TABLE #NUMBERS
(
    N BIGINT
);

INSERT INTO #NUMBERS VALUES
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8),
(9)
;



WITH
A AS
(   
    -- CHOOSE A ROW AT RANDOM
    SELECT   TOP 1 *
    FROM     #NUMBERS            
    ORDER BY NewID()           
),
B AS
(
    SELECT A.N AS QUANTITY, 'METERS' AS UNIT FROM A
    
    UNION ALL

    SELECT A.N*100 AS QUANTITY, 'CENTIMETERS' AS UNIT FROM A
    
    UNION ALL

    SELECT A.N*1000 AS QUANTITY, 'MILLIMETERS' AS UNIT FROM A
    
    UNION ALL

    SELECT A.N*1000000 …
Run Code Online (Sandbox Code Playgroud)

sql-server cte union sql-server-2017

0
推荐指数
2
解决办法
3006
查看次数

标签 统计

cte ×1

sql-server ×1

sql-server-2017 ×1

union ×1