Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何对一个或另一个字符使用Charindex_Sql_Sql Server_String_Charindex - Fatal编程技术网

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

Sql 如何对一个或另一个字符使用Charindex,sql,sql-server,string,charindex,Sql,Sql Server,String,Charindex,我有一个字符串,其中有一组数字,但它在字符串的中心某处包含一个字母。此字母可以是“A”或“B”。我试图用Charindex()函数找出这个字母的位置。但是,当您有两个搜索参数时,它不起作用: select charindex('[A,B]','190118A3700000') 我尝试了一个范围和通配符,但它没有工作。因此,我希望将这两个单独的查询合并为一个查询: select charindex('A','190118A3700000') select charindex('B','19

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

select  charindex('[A,B]','190118A3700000')
我尝试了一个范围和通配符,但它没有工作。因此,我希望将这两个单独的查询合并为一个查询:

select  charindex('A','190118A3700000')
select  charindex('B','190118A3700000')
有人知道怎么做吗

谢谢你

使用
patindex()

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

select patindex('%[^0-9]%', '190118A3700000')
他是一把小提琴

charindex()
不理解通配符。

使用
patindex()

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

select patindex('%[^0-9]%', '190118A3700000')
他是一把小提琴


charindex()
不理解通配符。

如果
charindex
没有找到该字符,它将返回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;

如果
charindex
没有找到该字符,它将返回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;

我立刻想到了PATINDEX,也从未考虑过这种方法。这不是我以前见过的。酷。我立刻想到了PATINDEX,从来没有考虑过这种方法。这不是我以前见过的。凉的