如何在SQL Server中分割字符串?

时间:2019-03-07 05:07:42

标签: sql-server

我有一个字符串,如“你好,约翰?”。我需要根据用户输入索引拆分字符串。问题是单词不必拆分。

示例:

  • 输入查询:约翰,你好吗?
  • 分解指数:5

我得到这样的输出:

How are you john?

预期输出:

How
are 
you 
john?

2 个答案:

答案 0 :(得分:0)

您可以尝试一下。

Create Table tblData (inputString Varchar(50));    
Insert Into tblData Values('How are you john?')

SELECT   
     Split.a.value('.', 'VARCHAR(100)') AS String  
 FROM  (SELECT   
         CAST ('<M>' + REPLACE([inputString], ' ', '</M><M>') + '</M>' AS XML) AS String  
     FROM  tblData) AS A CROSS APPLY String.nodes ('/M') AS Split(a);

答案 1 :(得分:0)

功能非常好 STRING_SPLIT

SELECT * 
FROM STRING_SPLIT ('How are you john?', ' ') AS cs;

这将为您提供所需的输出。

第二个参数可以是任何您喜欢的参数,例如','或'\'

SQL fiddle