如何对一个或另一个字符使用 Charindex

not*_*kie 3 sql sql-server string charindex

我有一个带有一堆数字的字符串,但它在字符串中心的某个位置包含一个字母。该字母可以是“A”或“B”。我试图用 Charindex() 函数找出这封信的位置。但是,当您有两个搜索参数时,它不起作用:

select  charindex('[A,B]','190118A3700000')
Run Code Online (Sandbox Code Playgroud)

我尝试使用范围和通配符,但没有成功。所以我想要的是将这两个单独的查询合并为一个:

select  charindex('A','190118A3700000')
select  charindex('B','190118A3700000')
Run Code Online (Sandbox Code Playgroud)

有人知道如何做到这一点吗?

谢谢你!!!

Gor*_*off 6

使用patindex()

select patindex('%[A,B]%', '190118A3700000')
Run Code Online (Sandbox Code Playgroud)

或者,如果您想要第一个非数字:

select patindex('%[^0-9]%', '190118A3700000')
Run Code Online (Sandbox Code Playgroud)

是一个 db<>fiddle。

charindex()不理解通配符。