使用SQL 2008;我有以下字符串:
EMCo: 1 WorkOrder: 12770 WOItem: 10
我正在努力获得WorkOrder#。
当字符串末尾没有WOItem时,我能够使用以下语句来获取WorkOrder#。
[WorkOrder] = LTRIM(RTRIM(RIGHT(HQMA.KeyString,CHARINDEX(':',REVERSE(HQMA.KeyString))-1)))
此语句移动并且可能具有Co#的两位数,并且它并不总是具有WOItem#。希望能找到一些在"之后分裂的东西:"然后选择第二组。
有什么建议吗?
答案 0 :(得分:0)
如何使用patindex()
?假设工单总是有五个字符:
select substring(HQMA.KeyString,
patindex('%WorkOrder: %', HQMA.KeyString) + 11,
5) as WorkOrder
答案 1 :(得分:0)
上面的patindex建议可以很好地工作,现在如果你仍然想要使用当前语句,substring将拉出相同的值,并且replace将取出WOItem。不是很优雅,无论你是否有WOItem,它都有效:
nil