SQL Server 字符及字符串处理整理
需求1:查找出 非字字母,非数字的首次出现的位置,要截取前面的字符串作为结果
DECLARE @Str VARCHAR(50) =‘ab1g_=0’;
SELECT PATINDEX(’%[^a-zA-Z0-9]%’,@Str) – 返回第一个非字母数字的 ’_‘的首次位置 5
–截取第一个非字母数字的字符前面的内容
SELECT LEFT(‘ab1g_=0’,PATINDEX(’%[^a-zA-Z0-9]%’,@Str)-1) – 返回 ab1g
需求2:补充上面的需求,查找出 非字字母,非数字,非汉字的首次出现的位置
select PATINDEX(‘%[^吖-咗a-zA-Z0-9]%’,’查找非 中文字母数字出现的第一个位置’)
返回值:4