我有一个名为Dept
的列,它是一个数字,我有另一个名为manager
的列,它是一个varchar。 manager
列具有varchar格式(1,2,3,4)的数字列表,但也存储符号'%'。我的问题出在我的查询中,我将dept
与manager
Where dept = [value in manager]
如果我将dept
与manager
值进行比较,该值是varchar但包含数字字符,则查询有效,但是当我将dept
与manager
进行比较时变量,它包含'%'它不再起作用。
因此,为了更清楚,我将展示一些例子
Where dept = '1' -OK
Where dept = '2' -OK
Where dept = '%' -NOT OK
我试了to_char(dept)='%'
没有运气。我不知道还能做什么?
答案 0 :(得分:1)
使用Where dept = '%'
,您正在尝试查找dept等于一个字符的行:'%'。您应该使用Pattern-matching Conditions,它看起来像Where dept like '%'
答案 1 :(得分:0)
由于%
是通配符,您必须引用它:Here是oracle识别的所有特殊字符的列表,以及如何使用大括号{}
引用它们。 / p>