如何在SQL中解决区分大小写的字段

时间:2017-01-24 17:21:18

标签: sql

我的代码是:

CURSOR get_party_description is      
      select party_name  
      from   ifsapp.IDENTITY_PAY_INFO_ALL
      where  party_type    = :NEW.PARTY_TYPE
      and    identity   = identity_

:NEW_PARTY_TYPE = 'SUPPLIER',而字段中的值为“供应商”。此代码将撤回没有记录但如果我将其更改为“供应商”,则会找到记录

如何在不匹配案例的情况下更改搜索?

3 个答案:

答案 0 :(得分:2)

您可以将变量和字段转换为大写或小写。

where  UPPER(party_type)    = UPPER(:NEW.PARTY_TYPE)

这可能会导致表空间扫描,因为该字段上的索引将区分大小写。

你可以通过添加一个大写且索引的列来解决这个问题。

答案 1 :(得分:0)

将您的两个值更改为大写。例如:

CURSOR get_party_description is      
      select party_name  
      from   ifsapp.IDENTITY_PAY_INFO_ALL
      where  UPPER(party_type)    = UPPER('SUPPLIER')
      and    identity   = identity_

答案 2 :(得分:0)

除了将两个字符串转换为相同的大小写(大写或小写),然后将它们进行相等性比较之外,大多数SQL方言都允许使用LIKE运算符进行不区分大小写的比较,如下所示:

CURSOR get_party_description is      
    select party_name  
    from   ifsapp.IDENTITY_PAY_INFO_ALL
    where  party_type LIKE :NEW.PARTY_TYPE
    and    identity   = identity_