循环通过字符串中的单词

时间:2017-11-15 00:37:57

标签: sql sql-server tsql azure-sql-database

我已经看到了很多关于这个问题的javascript堆栈问题,但没有与SQL Server特别相关。

我需要做的是接受一个字符串值并多次在字符串上循环以取回所有单词,这样我就可以对它们进行计算。

一个粗略的想法如下所示。谁知道如何实现这一目标?

Declare @String nvarchar(50) = 'Mary had a little lamb'
Declare @word nvarchar(50) 

Start Loop 1 to 5 
    Set @word = 'Mary' (1)
    Set @word = 'had' (2)
    Set @word = 'a' (3)
    Set @word = 'little' (4)
    Set @word = 'lamb' (5)
End Loop

2 个答案:

答案 0 :(得分:0)

这看起来可以完成这项工作。

DECLARE @tags NVARCHAR(400) = 'mary had a little lamb'  

SELECT value  
FROM STRING_SPLIT(@tags, ' ')  

答案 1 :(得分:0)

您可以拆分参数并将其写入临时表,然后使用临时表中的值。在SQL中使用循环不是最好的主意,因为它们确实会影响您的查询性能。

Declare @String nvarchar(50) = 'Mary had a little lamb'

INSERT INTO #tempTable(colName)
SELECT colName
FROM dbo.Split(@String , ' ')