如何忽略" $"在SQL查询?

时间:2017-09-16 10:56:17

标签: mysql sql oracle plsqldeveloper

我的表看起来像这样:

select distinct mock_data.employeeid,
               mock_data.salary
  from MOCK_DATA
  where mock_data.gender like 'M%' and
        replace(salary, '$','') salary > '3400';

我想要运行的查询是:

{{1}}

因为工资字段包含一个我不能使用关系运算符的字符,所以我首先使用replace来改变" $"到""

运行上述查询时得到的错误是: ORA-00920 ::无效的关系运算符

我的查询应该如何?

2 个答案:

答案 0 :(得分:1)

您可以使用此查询。

select distinct employeeid,salary 
from MOCK_DATA 
where gender like 'M%'
  and replace(salary, '$','') > '3400'

答案 1 :(得分:0)

您的数据和查询非常糟糕,您应将其丢弃并重新开始。

首先,不要每次都尝试将数字作为字符串进行比较。想想如果有人碰巧有10,000的工资会发生什么。

您的查询应使用以下内容:

施放(替换(工资,' $','')为十进制(10,2))> 3400

那就是说,你的问题仍然存在。

一个小小的手腕问题是你把所有东西都存储为varchar(50)。是真的如此,还是" 50"只是第一个突然出现的数字?

可判处死刑的罪行是您将数字存储为字符串。修复您的列数据类型,摆脱' $',您的生活将变得更加轻松。