【问题标题】:为每一行分配一个字母列
【发布时间】:2022-01-23 03:35:28
【问题描述】:

假设我有一个数据集,它只是一列整数。例如:

CREATE TABLE #nums
(    
    Number int NOT NULL 
)

INSERT INTO #nums 
VALUES (5), 
(7), 
(6),
(9)

我想编写一个查询,该查询将返回此数据以及由字母“A”、“B”、“C”等组成的第二列。最小的数字应与“A”匹配,并且最高数字应与序列中的最后一个字母匹配。初始表中的行数会有所不同,但绝不会超过 12。

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    也许这会有所帮助。窗口函数row_number() over() 配合char() 函数

    示例

    Select *
          ,NewVal = char(64+row_number() over (order by Number))
     From  #nums
    

    结果

    Number  NewVal
    5       A
    6       B
    7       C
    9       D
    

    【讨论】:

    • 好答案,我这边+1!
    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    相关资源
    最近更新 更多