将数字与varchar进行比较

时间:2013-08-26 19:37:03

标签: sql oracle plsql

我有一个名为Dept的列,它是一个数字,我有另一个名为manager的列,它是一个varchar。 manager列具有varchar格式(1,2,3,4)的数字列表,但也存储符号'%'。我的问题出在我的查询中,我将deptmanager

进行了比较
Where dept = [value in manager]

如果我将deptmanager值进行比较,该值是varchar但包含数字字符,则查询有效,但是当我将deptmanager进行比较时变量,它包含'%'它不再起作用。

因此,为了更清楚,我将展示一些例子

Where dept = '1' -OK
Where dept = '2' -OK
Where dept = '%' -NOT OK

我试了to_char(dept)='%'没有运气。我不知道还能做什么?

2 个答案:

答案 0 :(得分:1)

使用Where dept = '%',您正在尝试查找dept等于一个字符的行:'%'。您应该使用Pattern-matching Conditions,它看起来像Where dept like '%'

答案 1 :(得分:0)

由于%是通配符,您必须引用它:Here是oracle识别的所有特殊字符的列表,以及如何使用大括号{}引用它们。 / p>