我有这些简单的 SQL 语句:
SELECT COUNT(ID) AS Expr1
FROM Table1
UNION
SELECT COUNT(ID) AS Expr2
FROM Table1 AS Table1_1
WHERE (UPDATED > CREATED)
UNION
SELECT COUNT(DISTINCT DATEPART(year, UPDATED)) AS Expr3
FROM Table1 AS Table1_2
我想将结果显示为:
Expr1 Expr2 Expr3
----- ----- -----
5 3 2
怎么做?我知道 UNION
比在 WHERE
子句中使用 OR
更可靠也更快。
最佳答案
您不能使用 UNION
执行此操作 - 这将为您提供行的并集 - 而不是列。
根据您的要求,尝试这样的事情:
SELECT
Expr1 = (SELECT COUNT(ID) FROM Table1),
Expr2 = (SELECT COUNT(ID) FROM Table1 WHERE UPDATED > CREATED),
Expr3 = (SELECT COUNT(DISTINCT DATEPART(year, UPDATED)) FROM Table1)
这将为您提供一行三列,其中包含您要查找的值。
关于sql - 在 SQL Server 2005 中显示 UNION 语句的每一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224155/