gpt4 book ai didi

sql - 如何在变量中存储固定行值 - SQL Server

转载 作者:行者123 更新时间:2023-12-02 14:46:39 24 4
gpt4 key购买 nike

我有一个表,最多可包含 5 行,最少可包含 1 行。现在我需要将这些行存储在不同的变量中,例如 @v1,@v2,@v3,@v4,@v5。我该怎么做?

该表只有 1 列 custid

CustId
100
200
300
400

如果表仅包含 1 行,则 @v1 应具有该值,其余部分可为 null

最佳答案

您可以使用以下查询:

SELECT @v1 = MAX(CASE WHEN rn = 1 THEN CustId END),
@v2 = MAX(CASE WHEN rn = 2 THEN CustId END),
@v3 = MAX(CASE WHEN rn = 3 THEN CustId END),
@v4 = MAX(CASE WHEN rn = 4 THEN CustId END),
@v5 = MAX(CASE WHEN rn = 5 THEN CustId END)
FROM (
SELECT CustId, ROW_NUMBER() OVER (ORDER BY CustId) AS rn
FROM mytable ) t

使用ROW_NUMBER,您可以为表中的每条记录分配一个不同的编号。然后,在外部查询中使用条件聚合,您可以使用该数字来设置每个单独的变量。

如果少于5行,相应的变量将被设置为NULL

SQL Fiddle Demo

关于sql - 如何在变量中存储固定行值 - SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29692604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com