我的选择查询中有一些硬编码的数据。
SQL如下:
SELECT
'ZZ0027674',
'ZZ0027704',
'ZZ0027707',
'ZZ0027709',
'ZZ0027729',
'ZZ0027742',
'ZZ0027750'
不幸的是它不显示数据。它只返回7列,每列都有每个值。我只想要一个具有不同值的列。
请提供不同的解决方案来显示数据?
答案 0 :(得分:10)
您可以对硬编码值使用VALUES
,也就是表值构造函数子句:
SELECT *
FROM (VALUES('ZZ0027674'),('ZZ0027704'),('ZZ0027707'),
('ZZ0027709'),('ZZ0027729'),('ZZ0027742'),
('ZZ0027750')
) AS sub(c)
的 LiveDemo
强>
警告:此限制最多为1000行,适用于SQL Server 2008+
。对于较低版本,您可以使用UNION ALL
代替。
修改强>
如果有人可以给我发消息,可以加分吗?
SELECT col
FROM (SELECT 'ZZ0027674','ZZ0027704','ZZ0027707',
'ZZ0027709','ZZ0027729','ZZ0027742','ZZ0027750'
) AS sub(v1,v2,v3,v4,v5,v6,v7)
UNPIVOT
(
col for c in (v1,v2,v3,v4,v5,v6,v7)
) AS unpv;
的 LiveDemo2
强>
答案 1 :(得分:5)
使用union:
SELECT
'ZZ0027674' union all
SELECT 'ZZ0027704' union all
SELECT 'ZZ0027707' union all
SELECT 'ZZ0027709' union all
SELECT 'ZZ0027729' union all
SELECT 'ZZ0027742' union all
SELECT 'ZZ0027750'
答案 2 :(得分:0)
也可以使用union
SELECT 'ZZ0027674' as [col1]
UNION
SELECT 'ZZ0027704'