我有一個字符串,看起來像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 /將一個字符串分成兩部分並選擇成兩個變量 –