【发布时间】:2016-03-09 21:44:11
【问题描述】:
我有一个包含 2 列的表(在 SQL Server 中)。一列包含多个服务器名称,以波浪号~ 分隔。此列可以包含也可以不包含实际的服务器名称。另一列具有实际的服务器名称。
我正在寻找一种将第一列值分隔到它们自己的分隔列中的方法。别名的数量范围从 1 到 ?。
Server_Alias_Names Actual_Server_Name
------------------------------------------------------------
Server1~ROSCO24~Server3~Server4~~~~~ ROSCO24
STEVETESDB26~~~~~~~~~ STEVETESDB26
RALPHPRD117~RALPHPRD117-adm~Server0025~Server0025a1~Server0025a2~Server0025a3~~~~~ RALPHPRD117
Server1001~Server1001R1~Server1001-adm~~~~~~~ DBTEST1001
我从字符串中提取了前两个服务器,但在接下来的几个服务器上我遇到了问题。任何帮助表示赞赏!!!
SELECT
LEFT(Server_Alias_Names, CHARINDEX('~', Server_Alias_Names) - 1) as 'First_Server',
SUBSTRING(Server_Alias_Names,len(LEFT(Server_Alias_Names, CHARINDEX('~', Server_Alias_Names)+1)),LEN(LEFT(Server_Alias_Names, CHARINDEX ('~', Server_Alias_Names)))) as 'Second_Server'
FROM
TBL_NAME
【问题讨论】:
标签: sql sql-server substring