名字和姓氏字符的字符串匹配

问题描述 投票:0回答:2

我的 SQL 表有一列包含人名和姓氏,如“Mike Baldwin”、“Sara Larson”等,需要输出所有姓名以“M”开头或姓氏倒数第二个字母为“i”的人。如何将其写入脚本文件?

所以我制作了这个脚本:

SELECT * WHERE CLIENT LIKE 'M%' OR CLIENT LIKE '%i_'

但是这个脚本输出名字的倒数第二个字母也是“i”的人。

sql oracle sql-like
2个回答
0
投票

据我了解;根据您的解释,

name
surname
是两个不同的列;

select *
from table_name
where name like'M%' OR surname like '%i_';

应该可以工作。

请替换上面查询中的实际列名

====================================================== ===========

更新: 基于解释; 有一个列

client
存储
name
surname
,并用空格分隔

select *
from table_name
where SUBSTR(client, 1, 1) = 'M'
   OR SUBSTR(client, INSTR(client, ' ', -1) - 1, 1) = 'i';

0
投票

考虑在这里使用一些正则表达式。类似的东西,但我不知道正则表达式在 oracle 中是如何工作的?

SELECT *
FROM table_name
 WHERE CLIENT LIKE 'M%' OR 
REGEX_LIKE (CLIENT , '^[a-zA-Z]+\s.[i]+[a-zA-Z]*$')

更新了正则表达式!

© www.soinside.com 2019 - 2024. All rights reserved.