gpt4 book ai didi

sql - t-sql 这是如何工作的? SELECT @MyList = ISNULL(@MyList ,'') + 标题 + ', ' FROM 标题

转载 作者:行者123 更新时间:2023-12-05 00:36:46 29 4
gpt4 key购买 nike

我遇到了一些非常酷的 t-sql,可以从一个 t-sql 查询中的选定行生成一个逗号分隔的列值列表:

SELECT @MyList = ISNULL(@MyList,'')  + Title + ', ' FROM Titles

但我无法弄清楚它是如何工作的。不知何故,它必须进行递归调用,但我不知道如何进行。
任何人都可以向我解释它或给我发送一个解释它的链接吗?
要查看它的工作,请使用以下脚本:
CREATE TABLE  Titles(
Title varchar(50)
)

insert Titles values ( 'Doctor')
insert Titles values ( 'Nurse')
insert Titles values ( 'Administrator')
insert Titles values ( 'CMA')

select * from Titles

DECLARE @MyList VARCHAR(1000)
SET @MyList = ''
SELECT @MyList = ISNULL(@MyList,'') + Title + ', ' FROM Titles
SELECT @MyList

最佳答案

那作业:

@MyList = ISNULL(@MyList,'')  + Title + ', ' 

对 Titles 表的每一行进行评估。它连接每一行的 Title列值到@MyList。

测试 ISNULL(@MyList,'')只需要,所以 @MyList如果是 NULL,则以空字符串开头.在您的示例中 ISNULL是不必要的,因为 @MyList 显式设置为空字符串。

关于sql - t-sql 这是如何工作的? SELECT @MyList = ISNULL(@MyList ,'') + 标题 + ', ' FROM 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7824557/

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