【问题标题】:sql: string comparisonsql:字符串比较
【发布时间】:2017-02-23 11:36:23
【问题描述】:

我有以下sql 代码:

if ('aaa' = 'aAa') 
    print 'equals'
else
    print 'not equals'

它会打印出equals。为什么字符串不相等时会出现这种行为?

【问题讨论】:

  • 据我所知,SQL 中的字符串比较不区分大小写。
  • 你需要了解字符串collat​​ions。显然,您使用的数据库的默认设置是不区分大小写的。
  • 您可能忘记在这个问题中添加SQL Server 标签,因为它是CASE INSENSITIVE,而其他问题可能不是这样,例如PostgreSQL 或'Oracle`
  • 相关(sql-server):stackoverflow.com/questions/1411161/…
  • “SQL”(查询语言)中没有IF。您使用的是哪个 DBMS?

标签: sql string-comparison


【解决方案1】:

使用排序规则:

IF 'aaa' COLLATE Latin1_General_CS_AS = 'aAa' COLLATE Latin1_General_CS_AS
 print 'equals'
else
 print 'not equals'

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 2015-11-19
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多