SQL 查询的语法,其中名称以 'n' 个不同的字母开头。以多个字母开头的唯一名称,如 b、e、g、h、t 等
Syntax for SQL query where the names start with 'n' different letters. Unique Names starting with multiple alphabets like b, e, g, h, t, etc
我试图在 Oracle SQL 查询中提取名称,其中这些名称以输入中给出的特定字母开头。例如,我需要单独提取以 a、c、f 等字母开头的唯一名称。
示例数据应以 A、J、M 开头
输出:
阿尔伯特
阿方索
阿内
约翰
吉姆
杰克
马修
马特
最大值
像这样。
在不使用 OR 运算符的情况下,我可以编写包含多个起始字母的最短语法是什么?
你可以在这里使用REGEXP_LIKE
。例如,要查找以 A
、J
或 M
开头的所有名称,我们可以使用:
SELECT name
FROM yourTable
WHERE REGEXP_LIKE(name, '^[AJM]', 'i');
您可以使用 SUBSTR
(一个比正则表达式更快的简单字符串函数)找到第一个字符,然后使用 IN
:
SELECT name
FROM table_name
WHERE SUBSTR(name, 1, 1) IN ('A', 'J', 'M')
如果您有混合大小写的字符串,那么您可以使用 UPPER
规范化大小写:
SELECT name
FROM table_name
WHERE UPPER(SUBSTR(name, 1, 1)) IN ('A', 'J', 'M')
我试图在 Oracle SQL 查询中提取名称,其中这些名称以输入中给出的特定字母开头。例如,我需要单独提取以 a、c、f 等字母开头的唯一名称。
示例数据应以 A、J、M 开头
输出:
阿尔伯特 阿方索 阿内
约翰 吉姆 杰克
马修 马特 最大值
像这样。
在不使用 OR 运算符的情况下,我可以编写包含多个起始字母的最短语法是什么?
你可以在这里使用REGEXP_LIKE
。例如,要查找以 A
、J
或 M
开头的所有名称,我们可以使用:
SELECT name
FROM yourTable
WHERE REGEXP_LIKE(name, '^[AJM]', 'i');
您可以使用 SUBSTR
(一个比正则表达式更快的简单字符串函数)找到第一个字符,然后使用 IN
:
SELECT name
FROM table_name
WHERE SUBSTR(name, 1, 1) IN ('A', 'J', 'M')
如果您有混合大小写的字符串,那么您可以使用 UPPER
规范化大小写:
SELECT name
FROM table_name
WHERE UPPER(SUBSTR(name, 1, 1)) IN ('A', 'J', 'M')