如何在SQL中以全名搜索姓氏?

时间:2014-12-23 07:54:11

标签: sql

我有以下数据。

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%')

我不知道如何做到这一点。我应该将全名拆分为逗号分隔值并忽略名字。请帮忙。

4 个答案:

答案 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,

这会实现你的目标吗?