【发布时间】:2019-07-23 01:32:56
【问题描述】:
我正在寻找一个查询 在列表中查找第 n 个值。分隔符是大于或等于 2 个空格的任何内容。 (可以是 3 个或 5 个空格)。 尽量避免标量值函数,因为性能可能会更慢。句子可以包含任意数量的单词,从 5 到 20。
create table dbo.TestWrite (TestWriteId int primary key identity(1,1), TextRow varchar(255))
insert into dbo.TestWrite (TextRow)
I am writing SQL Code. -- Row 1: Column 1: I , Column 2: am, Column 3: writing...
SQL keywords include join, except, where. -- Row 2: Column 1: SQL, Column 2: keywords, Column 3: include...
希望在带有列的单独行中,使用 select 语句查看预期输出 -- 上面的 cmets。
这可能是一种尝试利用的解决方案。 Using T-SQL, return nth delimited element from a string
DECLARE @dlmt NVARCHAR(10)=N' ';
DECLARE @pos INT = 2;
SELECT CAST(N'<x>' + REPLACE(@input,@dlmt,N'</x><x>') + N'</x>' AS XML).value('/x[sql:variable("@pos")][1]','nvarchar(max)')
【问题讨论】:
-
你的预期输出是什么?
-
@DarkRob,预期输出在行数据旁边的 cmets 中...
标签: sql sql-server split substring sql-server-2016