我有一个字符串,看起来像BAT | CAT | RAT | MAT
我想将这个字符串拆分成4个部分,然后存储在4个不同的变量中,分别是.. @ a,@ b,@ c,@ d。 我在代码背后这样做,但我不知道如何在SQL中做到这一点? 谢谢。如何将字符串拆分为sql中的变量?
1
A
回答
5
周边的一个字符分割:
DECLARE @A VARCHAR (100)= 'cat | bat | sat'
SELECT items
INTO #STRINGS
FROM dbo.split(@A,'|')
也看到此链接
DECLARE @test varchar(max);
set @test = 'Peter/Parker/Spiderman/Marvel';
set @test = Replace(@test, '/', '.');
SELECT ParseName(@test, 4) --returns Peter
SELECT ParseName(@test, 3) --returns Parker
SELECT ParseName(@test, 2) --returns Spiderman
SELECT ParseName(@test, 1) --returns Marvel
SQL Server 2005 : split string into array and get array(x)?
解决方法分割字符串:
http://www.sqlperformance.com/2012/07/t-sql-queries/split-strings
5
您可以分割的值,并在表变量插入它们,然后将它们分配给您的变量是这样的:
DECLARE @DataSource TABLE
(
[ID] TINYINT IDENTITY(1,1)
,[Value] NVARCHAR(128)
)
DECLARE @Value NVARCHAR(MAX) = 'BAT | CAT | RAT | MAT'
DECLARE @XML xml = N'<r><![CDATA[' + REPLACE(@Value, '|', ']]></r><r><![CDATA[') + ']]></r>'
INSERT INTO @DataSource ([Value])
SELECT RTRIM(LTRIM(T.c.value('.', 'NVARCHAR(128)')))
FROM @xml.nodes('//r') T(c)
SELECT [ID]
,[Value]
FROM @DataSource
结果,如果这个查询:
注意,这技术是动态的 - 它将分割任何以|
分割的字符串数并将它们存储在表变量表中。
1
不错,简单。 (使用Microsoft SQL Server Management Studio中PATINDEX)
DECLARE @string varchar(25) = 'BAT | CAT | RAT | MAT'
DECLARE @one varchar(5) = null
DECLARE @two varchar(5) = null
DECLARE @three varchar(5) = null
DECLARE @four varchar(5) = null
BEGIN
SET @one = SUBSTRING(@string, 0, PATINDEX('%|%', @string))
SET @string = SUBSTRING(@string, LEN(@one + '|') + 1, LEN(@string))
SET @two = SUBSTRING(@string, 0, PATINDEX('%|%', @string))
SET @string = SUBSTRING(@string, LEN(@two + '|') + 1, LEN(@string))
SET @three = SUBSTRING(@string, 0, PATINDEX('%|%', @string))
SET @string = SUBSTRING(@string, LEN(@three + '|') + 1, LEN(@string))
SET @four = @string
SELECT @one AS Part_One, @two AS Part_Two, @three AS Part_Three, @four AS Part_Four
END
相关问题
- 1. 将字符串拆分为变量
- 2. JavaScript将字符串中的两个变量拆分字符串
- 3. 如何将输入字符串拆分为多个变量
- 4. 如何使用PHP将字符串拆分为2个变量?
- 5. 如何将字符串拆分为java中的子字符串
- 6. 如何将字符串拆分为iOS中的子字符串?
- 7. 将字符串拆分为C++中的单独变量
- 8. 将字符串拆分为字符串
- 9. 将字符串拆分为字符串
- 10. 如何将字符串拆分为列
- 11. 如何在iOS中将字符串拆分为子字符串
- 12. 将字符串拆分为“。”
- 13. 将字符串拆分为“|”
- 14. C#拆分字符串 - 将字符串拆分为数组
- 15. 如何将字符串拆分为等长的子字符串?
- 16. 如何将字符串拆分为重复的子字符串
- 17. 将SQL字符串拆分为多个字符串
- 18. 将字符串变量拆分为指定长度的随机子字符串
- 19. Java:将字符串拆分为单独的字符串和整数变量
- 20. 将lua字符串拆分为字符
- 21. php将字符串拆分为字符
- 22. PatternSyntaxException将字符串拆分为“*”字符
- 23. 如何将字符串拆分为字符串数组?
- 24. C++如何将字符串拆分为字符串和整数?
- 25. 如何将字符串拆分为子字符串?
- 26. 如何将字符串拆分为字符串[]?
- 27. 如何将字符串拆分为单个字符串?
- 28. 如何将字符串列拆分为4个字符串列?
- 29. 如何将字符串拆分为字符串数组?
- 30. 如何在批处理中将字符串拆分为多个变量?
使用CHARINDEX,看这里:http://stackoverflow.com/questions/10581772/how-to-split-a-comma-separated-value-对列 –
是有帮助的,http://stackoverflow.com/questions/2647/split-string-in-sql – KumarHarsh
由于你面临的问题 这个线程可能会帮助你http://stackoverflow.com/questions/6953115 /将一个字符串分成两部分并选择成两个变量 –