gpt4 book ai didi

sql-server - 如何在 SQL 中解析逗号分隔的字符串变量

转载 作者:行者123 更新时间:2023-12-04 00:45:07 37 4
gpt4 key购买 nike

我在 SQL Server 2008 中工作。我有一个存储过程,它接受一个名为 @test 的参数。此参数是 varchar(255)。在这个存储过程中,我需要解析这个字符串,将每个值转换为一个字符串本身(会有可变数量的值),并构建一个列表以在 NOT IN 语句中使用。

例如,假设@test = 'a, b, c, d'。我需要将此参数发送到我的存储过程中。在我的存储过程中有一个使用 NOT IN 语句的 SELECT 查询。对于这个例子,我需要这个 NOT IN 语句来读取 NOT IN('a', 'b', 'c', 'd')。

我该如何实现?或者,这是一种不好的做法吗?

最佳答案

您可以为此使用动态 sql。使用 replace 函数获取正确的 NOT IN() 参数:

DECLARE @test VARCHAR(10) = 'a,b,c,d'

DECLARE @sql NVARCHAR(MAX)

SELECT @sql = 'SELECT *
FROM #temp
WHERE label NOT IN (''' + REPLACE( @test ,',',''',''') + ''')'

EXEC sp_executesql @sql

关于sql-server - 如何在 SQL 中解析逗号分隔的字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556769/

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