【问题标题】:ORACLE UPPER applied to IN conditionORACLE UPPER 应用于 IN 条件
【发布时间】:2014-07-04 10:42:46
【问题描述】:

我有一个 Oracle 查询,我想在其中将 UPPER 函数应用于 IN 条件中的所有值,而不是在每个值上显式调用 UPPER,例如。

SELECT * FROM a WHERE b IN UPPER(v1, v2, v3, v4);

而不是

SELECT * FROM a WHERE b IN (UPPER(v1), UPPER(v2), UPPER(v3), UPPER(v4));

任何帮助将不胜感激。

【问题讨论】:

  • v1v4 来自哪里?可以在查询之前将它们转换为大写吗?
  • v1,..,v4 是混合大小写的吗?只是一个使用 LOWER(B) 的想法

标签: sql oracle uppercase in-clause


【解决方案1】:

您可以(几乎)通过关闭区分大小写来做到这一点:

alter session set NLS_COMP=ANSI;
alter session set NLS_SORT=BINARY_CI;

select * from A where B in (v1, v2, v3, v4)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多