SQL server中的正则表达式,使用字符的位置

SQL server中的正则表达式,使用字符的位置,sql,sql-server,Sql,Sql Server,我正在寻找第二个字母是“A”的客户。我的第一个猜测是: 挑选 * 从…起 客户 哪里 customers.name,比如“[A-Z]A%” 但是SQL Server是否有一种通用的方法来按第n个字母查找记录,比如 挑选 * 从…起 客户 哪里 像“[A-Z]{n,m}A%”这样的customers.name使用子字符串 如果存在不一致的情况,则添加上限 SELECT * FROM customers WHERE SUBSTRING(UPPER(name), 2, 1) = 'A' 您也可以

我正在寻找第二个字母是“A”的客户。我的第一个猜测是:

挑选 * 从…起 客户 哪里 customers.name,比如“[A-Z]A%”

但是SQL Server是否有一种通用的方法来按第n个字母查找记录,比如

挑选 * 从…起 客户 哪里 像“[A-Z]{n,m}A%”这样的customers.name

使用子字符串

如果存在不一致的情况,则添加上限

SELECT * 
FROM customers 
WHERE SUBSTRING(UPPER(name), 2, 1) = 'A'

您也可以使用类似的方式来表达这一点:

请注意,这是ANSI标准语法,适用于任何数据库表示单个字符的通配符

SELECT * 
FROM customers 
WHERE SUBSTRING(UPPER(name), 2, 1) = 'A'
where name like '_A%'