Sql 如何将两列合并为一个类似于一列的语句?
我有姓和名 我需要能够搜索史密斯或史密斯j 我在where条款中有以下内容:Sql 如何将两列合并为一个类似于一列的语句?,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我有姓和名 我需要能够搜索史密斯或史密斯j 我在where条款中有以下内容: lastname LIKE '%SMITH%' AND firstname LIKE '%J%' 我做错了什么?我怎样才能把这样的名字和姓氏结合起来呢?数据中确实有一个smith j 谢谢你的帮助 如果有必要的话,我正在使用Oracle 11g 编辑:忘记包含引号。我确实有。谢谢 编辑:看起来我做得不错,所以一定是其他原因。用一个同时匹配两个的正则表达式代替like怎么样?用一个同时匹配两个的正则表达式代替like怎
lastname LIKE '%SMITH%' AND firstname LIKE '%J%'
我做错了什么?我怎样才能把这样的名字和姓氏结合起来呢?数据中确实有一个smith j
谢谢你的帮助
如果有必要的话,我正在使用Oracle 11g
编辑:忘记包含引号。我确实有。谢谢
编辑:看起来我做得不错,所以一定是其他原因。用一个同时匹配两个的正则表达式代替like怎么样?用一个同时匹配两个的正则表达式代替like怎么样?除非我误解了你的问题
lastname LIKE '%smith%'
除非我误解了你的问题,否则它本身将返回两个?
lastname LIKE '%smith%'
单独返回两个?字符串周围需要撇号:
lastname LIKE '%smith%' AND firstname LIKE '%J%'
字符串周围需要撇号:
lastname LIKE '%smith%' AND firstname LIKE '%J%'
尝试:
或者,如果你真的需要在一个声明中:
UPPER(lastname||firstname) LIKE '%SMITH%J%'
尝试:
或者,如果你真的需要在一个声明中:
UPPER(lastname||firstname) LIKE '%SMITH%J%'
怎么样
(
(lastname LIKE '%SMITH%') AND
( (firstname LIKE '%J%') OR (firstname IS NULL) OR (firstname ='') )
)
怎么样
(
(lastname LIKE '%SMITH%') AND
( (firstname LIKE '%J%') OR (firstname IS NULL) OR (firstname ='') )
)
是的,但我需要缩小它的范围,以便它也使用第一个名称。是的,但我需要缩小它的范围,以便它也使用第一个名称。混合小写字母“smith”和大写字母“J”的部分是有意的?也许该字段不区分大小写?那么“%j%”和“%j%”会返回其他结果吗?!我认为你需要展示你拥有的数据,你期望的结果,以及你实际得到的结果。因为,实际上,你应该做你所描述的…你把小写字母“smith”和大写字母“J”混合在一起的部分是故意的?也许这个字段是不区分大小写的?那么“%j%”和“%j%”会返回其他结果吗?!我认为你需要展示你拥有的数据,你期望的结果,以及你实际得到的结果。因为,实际上,你应该做你所描述的…+1是唯一一个观察到问题作者明显缺失的案例不敏感的答案,+1是唯一一个观察到问题作者明显缺失的案例不敏感的答案。