【发布时间】:2012-06-24 11:34:20
【问题描述】:
COMMSTR1-NAC-NAM-P-C FCPANAM1-NAC-NAM-P-C CHAZEL1-NAT-CBM-P-C
我想将上面的字符串分隔为(Required Output)
col1 col2 col3 col4 col5 col6
COMMSTR1 NAC-NAM-P-C FCPANAM1 NAC-NAM-P-C CHAZEL1 NAT-CBM-P-C
我试过了。
SELECT Contact_assg_list_src,
Contact_Assg_List_Src =
(
case WHEN Contact_Assg_List_Src IS NOT NULL and Contact_Assg_List_Src <> ''
then left(Contact_Assg_List_Src,patindex('%[-]%',Contact_Assg_List_Src)-1)
ELSE Contact_Assg_List_Src
END),
(case WHEN Contact_Assg_List_Src IS NOT NULL and Contact_Assg_List_Src <> ''
then substring(Contact_Assg_List_Src,(Patindex('%[-]%',Contact_Assg_List_Src + ' ')-1),len(Contact_Assg_List_Src))
ELSE Contact_Assg_List_Src
END)
from dbo.FBMSRAW;
这给了我这样的输出
col1 col2
COMMSTR1 NAC-NAM-P-C FCPANAM1-NAC-NAM-P-C CHAZEL1-NAT-CBM-P-C
如何检查字符串是否有空格,然后根据该 分隔字符串以 得到所需的输出?
【问题讨论】:
-
TSQL 不是一个很好的字符串操作工具。您尝试在服务器上执行此操作是否有原因?
-
@Damien_The_Unbeliever 是的,因为我的工作是数据清理,所以除了这个我不能使用。
-
列是固定的,我的意思是最多有多少个空格?你能假设它是 50 吗?
-
@ViswanathanIyeor 在您的预期结果中它有 6 个 cokumns。
标签: sql sql-server string sql-server-2008 tsql