拆分并获取第二行作为值

San*_*adi 1 t-sql sql-server split

我正在使用下面的查询来拆分名称,如下所示:

select value from STRING_SPLIT('Name1~Name2~Name3' , '~' );
Run Code Online (Sandbox Code Playgroud)

如何获得第二个名字,即Name2不使用WHERE条件

注意:名称可以是动态的

在此处输入图片说明

And*_*rea 6

STRING_SPLIT您可以将字符串转换为XML,然后使用.value来检索第二个元素,而不是使用:

SELECT CAST('<t>' + REPLACE('Name1~Name2~Name3' , '~','</t><t>') + '</t>' AS XML).value('/t[2]','varchar(50)')
Run Code Online (Sandbox Code Playgroud)


Cha*_*kya 6

尝试PARSENAME函数

SELECT PARSENAME( REPLACE('Name1~Name2~Name3','~','.'),2)
Run Code Online (Sandbox Code Playgroud)

输出

Name2
Run Code Online (Sandbox Code Playgroud)

PARSENAME返回对象名称的指定部分。可以检索的对象部分是对象名称、所有者名称、数据库名称和服务器名称。