可能重复:
Split Function equivalent in tsql?
SQL Search column for each variable in CSV string
我有一个存储过程,它将输入@Notifications
作为34181,34182,34184
等字符串。
现在,我希望将此字符串拆分为另一个变量@Notification
将包含第一次34181
和下一次34182
等。
这些数字34181
长度不固定。它也可以是341812
或3
因为我不能使用substr函数。
如何拆分此字符串?
答案 0 :(得分:0)
您可以将函数charIndex
与子字符串函数结合使用。 e.g。
select Phone,charindex('-',Phone) from customers
Result
030-0074321 4
http://dotnetguts.blogspot.com/2008/05/instr-function-in-sql-server.html
答案 1 :(得分:0)
虽然您已经有很多关于如何在SQL中创建string.Split
函数的链接,但有一个简单的方法是:
SELECT *
FROM Customers
WHERE ',' + @CustomerID + ',' LIKE '%,' + Customers.CustomerID + ',%'
虽然它不会在客户ID上使用任何索引,但是如果你只有一个小表,这没关系,否则复制函数中的string.split
方法并调用它。
SELECT *
FROM Customers
WHERE CustomerID IN (SELECT Value FROM dbo.Split(@CustomerIDs, ','))
或非常相似。