【发布时间】:2013-06-14 21:20:21
【问题描述】:
我有以下代码,我想比较两个字符串(varchars)。
如果 item.item_name 在任何地方包含字符串设备类型,我希望它返回记录。
但是我收到了一个错误,在上面的命令中说明了 INVALID NUMBER('%' + equipment_type + '%')。
select * from equipment_type
join item on upper(item.item_name) like upper('%' + equipment_type + '%')
我意识到问题是将通配符字符串添加到变量设备类型。 有谁知道如何让这个通配符比较起作用?
【问题讨论】:
-
Oracle 仅将
+用于数字和日期数学运算。对于字符串连接,请使用双杠 (||):... like upper('%' || equipment_type || '%')。 -
@EdGibbs 谢谢老兄,太完美了。
-
@EdGibbs - 你应该把它作为答案..
-
@MikeChristensen - 我确实考虑过这样做,在“是的,这是一个真正的答案”和“不,这是一个非常微不足道的答案”之间摇摆不定(当然,对于 OP Jordan 来说不是)。既然您已经让我考虑了,我会将其添加为答案,以防其他人发现它有用。感谢您的反馈!
-
@EdGibbs +1 胡扯
标签: sql oracle concatenation sql-like unary-operator