我试图写一些删除所有内容的代码在句子中出现的第一个数字之后。
因此,如果该字段是E1W
我想要返回E,如果它是EP4则相同,只需返回EP。我已经尝试了各种子串,charindex和patindexs put无法正确使用。
答案 0 :(得分:2)
PATINDEX
有帮助:
SELECT Left(field, PatIndex('%[0-9]%', field + '1') - 1)
如果字段中没有数字,field + '1'
可以避免错误。
答案 1 :(得分:0)
您可以使用PATINDEX
:
SELECT *,
LEFT(s,IIF(PATINDEX('%[0-9]%',s)>0,PATINDEX('%[0-9]%',s)-1,0))
FROM (SELECT 'E1W' AS s
UNION SELECT 'EP4'
UNION SELECT 'ABC') z;
<强> Rextester Demo 强>