Return一组常数键值对

Return a constant set of key value pair

假设我有类似下面的东西

SELECT 0 AS 'Key','No' AS 'Value'
UNION
SELECT 1 AS 'Key','YES' AS 'Value'
UNION  
SELECT 2 AS 'Key','Maybe' AS 'Value'
....
....

如何使上面的语句更具可读性,以便我可以在单个 select 语句中容纳上面列表中的更多常量 key/value 对?我不想创建 table 变量或创建复杂的 sql 语句。只是一个 select 语句返回一堆常量 key/pair 值。

使用 table 值构造函数。

VALUES ((0,'NO'),(1,'YES'),(2,'MAYBE'))

您可以使用 VALUES:

SELECT *
FROM (VALUES 
    (0, 'No'),
    (1, 'Yes'),
    (2, 'Maybe')
) t([Key], Value)

Table Value Constructor

了解您不想创建 table 变量
我经常使用已接受的答案 +1
只需指出一个 table 变量就可以声明类型和主键

declare @tbl table ([key] tinyint primary key,  [value] varchar(12));
insert into @tbl values (1, 'one')
                      , (2, 'two')
                      , (3, 'three');
select * from @tbl order by [key];