用字符分割字符串

时间:2015-07-28 18:23:56

标签: sql string sql-server-2008 split character

使用SQL 2008;我有以下字符串:

EMCo: 1 WorkOrder: 12770      WOItem: 10

我正在努力获得WorkOrder#。

当字符串末尾没有WOItem时,我能够使用以下语句来获取WorkOrder#。

[WorkOrder] = LTRIM(RTRIM(RIGHT(HQMA.KeyString,CHARINDEX(':',REVERSE(HQMA.KeyString))-1)))

此语句移动并且可能具有Co#的两位数,并且它并不总是具有WOItem#。希望能找到一些在"之后分裂的东西:"然后选择第二组。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如何使用patindex()?假设工单总是有五个字符:

select substring(HQMA.KeyString,
                 patindex('%WorkOrder: %', HQMA.KeyString) + 11,
                 5) as WorkOrder

答案 1 :(得分:0)

上面的patindex建议可以很好地工作,现在如果你仍然想要使用当前语句,substring将拉出相同的值,并且replace将取出WOItem。不是很优雅,无论你是否有WOItem,它都有效:

nil