我有一个可能带有或不带有下划线和数字后缀的字段。我想选择_之前的字符串部分,但是_并不总是存在
在另一个问题中,我发现了这一点:
SUBSTRING([LineNumber], 0, CHARINDEX('_', [LineNumber]))
它对于MH31014329_1很好用,然后变成MH31014329,但是在没有_1的地方产生空白
一个用于测试=''的案例语句有效,但是该记录集超过10万行,我认为效率不高。
如何以最有效的方式做到这一点?
答案 0 :(得分:3)
在charindex()
上添加“失败保护”,如果已经存在,则不会有任何危害。
SUBSTRING([LineNumber], 0, CHARINDEX('_', [LineNumber]+'_'))