如何在Microsoft SQL Server中查询硬编码数组以返回单列多行结果?
在SQL Server中查询硬编码多行单列值的方法
以下是几种满足你需求的可行方案:
方法1:使用UNION ALL
这是最直观的实现方式,通过合并多个单行查询得到多行结果:
SELECT 1 AS Value UNION ALL SELECT 2 AS Value;
执行后会返回一列(列名为Value),包含两行数据,值分别为1和2。如果硬编码值无重复,优先用UNION ALL(性能比UNION更好,UNION会自动去重)。
方法2:使用VALUES子句(SQL Server 2008及以上版本支持)
这是更简洁的写法,直接构造行集:
SELECT Value FROM (VALUES (1), (2)) AS TempTable(Value);
通过VALUES构造临时行集后,查询指定列即可得到一列两行的结果,你可以自定义列名(比如把Value换成你需要的名称)。
方法3:表值构造函数写法变体
和方法2逻辑一致,写法更简洁:
SELECT * FROM (VALUES (1), (2)) AS T(ColName);
替换ColName为你想要的列名即可。
内容的提问来源于stack exchange,提问作者KRISTIJAN TOMASINI
相关产品推荐
相关产品推荐

