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

How to use Charindex for one or the other character

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

select  charindex('[A,B]','190118A3700000')

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

select  charindex('A','190118A3700000')
select  charindex('B','190118A3700000')

有人知道怎么做吗?

谢谢!!!

使用patindex():

select patindex('%[A,B]%', '190118A3700000')

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

select patindex('%[^0-9]%', '190118A3700000')

Here 是一个 db<>fiddle.

charindex() 不懂通配符。

如果 charindex 没有找到那个字符,它 returns 0 所以你需要做的就是

select col, charindex('A', col) + charindex('B', col) as position
from your_table;

另一种选择

select col, charindex('A', replace(col, 'B', 'A')) as position
from your_table;

DEMO