【发布时间】:2022-01-06 15:23:26
【问题描述】:
我正在尝试得到这个结果:
这两行来自同一个查询,但我必须复制结果(第一个称为“CLI”,第二个称为“CPA”)。
目前我用 UNION 来做:
WITH Temp AS (SELECT Code, Name, ...)
SELECT 'CLI' as RecordType, Code, Name, CONCAT('CLI', Name) as TechnicalName, ... FROM Temp
UNION ALL
SELECT 'CPA' as RecordType, Code, Name, CONCAT('CPA', Name) as TechnicalName, ... FROM Temp
还有其他最有效的解决方案吗? 因为大约有30列,所以现在代码很大。
我想到了这样的事情:
DECLARE @P_RecordType as char(3);
WITH Temp AS (SELECT Code, Name, ...)
SET @P_RecordType = 'CLI'
SELECT * FROM Temp
UNION ALL
SET @P_RecordType = 'CPA'
SELECT * FROM Temp
但它不起作用。
PS:我正在从“Microsoft SQL Azure (RTM) - 12.0.2000.8”查询 SSMS。
【问题讨论】:
-
您可以在
FROM和CROSS JOIN/CROSS APPLY中构造VALUES表。
标签: sql-server tsql azure-sql-database