【问题标题】:Return a constant set of key value pair返回一组常量键值对
【发布时间】:2018-01-24 16:33:33
【问题描述】:

想象一下我有类似下面的东西

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

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

【问题讨论】:

    标签: sql sql-server tsql sql-server-2017


    【解决方案1】:

    你可以使用VALUES:

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

    Table Value Constructor

    【讨论】:

      【解决方案2】:

      使用表值构造函数。

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

      【讨论】:

        【解决方案3】:

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

        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];
        

        【讨论】:

        • 我当然会注意到这一点。感谢您的努力!
        猜你喜欢
        • 2021-06-15
        • 2019-09-28
        • 1970-01-01
        • 2020-07-06
        • 2015-06-20
        • 2019-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多