如何将两列组合成一个LIKE语句?

时间:2011-10-05 22:21:34

标签: sql oracle oracle11g

我有一个姓氏和名字。

我需要能够搜索史密斯或史密斯j。

我在where子句中有这个:

lastname LIKE '%SMITH%' AND firstname LIKE '%J%'

我做错了什么?如何为一个LIKE组合姓氏和名字?数据中确实有一个smith j。

感谢您的帮助。

如果重要的话,我正在使用Oracle 11g。

编辑:忘记包含引号。我确实有那个。感谢。

编辑:看起来我做得对,所以它必须是别的。

5 个答案:

答案 0 :(得分:4)

尝试:

UPPER(lastname) LIKE '%SMITH%' AND UPPER(firstname) LIKE '%J%'

或者如果你真的需要一个声明:

UPPER(lastname||firstname) LIKE '%SMITH%J%'

答案 1 :(得分:1)

除非我误解了你的问题

lastname LIKE '%smith%'

本身会同时返回吗?

答案 2 :(得分:1)

你需要围绕琴弦的撇号:

lastname LIKE '%smith%' AND firstname LIKE '%J%'

答案 3 :(得分:0)

如何使用与之匹配的正则表达式而不是使用like?

答案 4 :(得分:0)

怎么样

(
  (lastname LIKE '%SMITH%') AND
  ( (firstname LIKE '%J%') OR (firstname IS NULL) OR (firstname ='') )
)