比较列值忽略大小写 - Oracle

时间:2015-02-13 06:40:02

标签: sql oracle oracle11g

我的表格从其他数据库提供数据。该源数据库现在将一个列值从ACTIVE更改为Active,因此我的查询不会返回结果。

我想通过忽略大小写在查询中处理这个问题。

我有IN函数的where子句,如下所示。

 Select * from myTabble Where mytable.status in ('ACTIVE')

有人可以通过忽略区分大小写来帮助我使用此查询。我也可以做一件事。从该来源插入后,我可以将Active转为ACTIVE。我在upper(sourcedata.status) Insert中使用query进行了尝试,但它没有用。

2 个答案:

答案 0 :(得分:1)

要忽略大小写,请使用UPPER(table.mycolumn) in ('UPPERCASE HERE')

答案 1 :(得分:1)

如果您在插入查询中使用upper(sourcedata.status),则应使用状态ACTIVE填充行。您仍然可以仅为旧记录找到active,或者如果您有其他一些代码填充该表。

无论如何为了保持安全,您可以在select语句中使用UPPER

SELECT * 
  FROM myTabble 
 WHERE UPPER(mytable.status) IN ('ACTIVE')