gpt4 book ai didi

sql - 在 SQL Server 2008 中用逗号分割字符串

转载 作者:行者123 更新时间:2023-12-02 13:10:20 25 4
gpt4 key购买 nike

有两个字符串ab

a 字符串包含逗号。我想用逗号分割字符串,然后遍历每个元素。

如果 b 字符串包含任何以逗号分隔的元素,将返回 0

(例如:a = "4,6,8" ; b = "R3799514" 因为 b 字符串包含 4,所以返回0)

如何用存储过程实现这一点?提前致谢!

我看到了 split 函数:

CREATE FUNCTION dbo.Split(@String varchar(8000), @Delimiter char(1))     
returns @temptable TABLE (items varchar(8000))
as
begin
declare @idx int
declare @slice varchar(8000)

select @idx = 1
if len(@String)<1 or @String is null return

while @idx!= 0
begin
set @idx = charindex(@Delimiter,@String)
if @idx!=0
set @slice = left(@String,@idx - 1)
else
set @slice = @String

if(len(@slice)>0)
insert into @temptable(Items) values(@slice)

set @String = right(@String,len(@String) - @idx)
if len(@String) = 0 break
end
return
end

select top 10 * from dbo.split('Chennai,Bangalore,Mumbai',',')

最佳答案

以下内容有效 -

DECLARE @A VARCHAR (100)= '4,5,6'
DECLARE @B VARCHAR (100)= 'RXXXXXX'
DECLARE @RETURN_VALUE BIT = 1 --DEFAULT 1


SELECT items
INTO #STRINGS
FROM dbo.split(@A,',')

IF EXISTS(SELECT 1 FROM #STRINGS S WHERE CHARINDEX(items, @B) > 0)
SET @RETURN_VALUE = 0

PRINT @RETURN_VALUE

DROP TABLE #STRINGS

您还可以使用CONTAINS而不是CHARINDEX -

IF EXISTS(SELECT 1 FROM #STRINGS S WHERE CONTAINS(items, @B))
SET @RETURN_VALUE = 0

关于sql - 在 SQL Server 2008 中用逗号分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999631/

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