我有以下数据。
FullName
---------------
Ray,John
Daly,Raymond
我想使用姓氏进行搜索。
我试过这个
SELECT FullName
FROM Names
WHERE UPPER(FullName) LIKE UPPER('%ray%')
这会返回两行,因为有明确的匹配。
然而,用名字搜索更容易。我刚刚使用了以下查询
SELECT FullName
FROM Names
WHERE UPPER(FullName) LIKE UPPER(', %ray%')
我不知道如何做到这一点。我应该将全名拆分为逗号分隔值并忽略名字。请帮忙。
答案 0 :(得分:2)
假设姓氏是逗号前面的位: 并且你想要包含替换'ray'
的lastnames SELECT FullName FROM Names WHERE UPPER(FullName) LIKE UPPER('%ray%,%')
如果你想要姓氏'ray'使用
SELECT FullName FROM Names WHERE UPPER(FullName) LIKE UPPER('ray,%')
如果您的数据库使用了ILIKE,这可能有助于提高性能,具体取决于您拥有的索引
SELECT FullName FROM Names WHERE FullName ILIKE 'ray,%';
答案 1 :(得分:1)
SELECT FullName FROM Names
WHERE UPPER(FullName) LIKE
UPPER('%ray%,%')
只需在表达式后添加逗号!
答案 2 :(得分:0)
只需拿出一个百分号,就这样:
SELECT FullName FROM Names WHERE UPPER(FullName) LIKE UPPER('ray%')
双方的百分比标记搜索整个字符串。
仅在右侧的百分比标记搜索字符串的开头。
答案 3 :(得分:-1)
而不是搜索ray
为什么不搜索ray,
?
这会实现你的目标吗?