【问题标题】:Is database record is case sensitive?数据库记录是否区分大小写?
【发布时间】:2014-02-02 03:34:11
【问题描述】:

我在 City 表中有两张表 City 和 CityCommunity,其中一列包含 cityName 像这样

cityName = 'ABC'

在CityCommunity 表中,我们有相同的列cityName,但是这个 columnName 的值是这样的

 cityName = 'abc' 

当我们运行 Join 查询时它会影响查询吗?在我的情况下,当我在上述情况下加入这两个表时,cityName 相同但唯一的区别是区分大小写是否会影响查询运行

【问题讨论】:

  • 这取决于 COLLATION - 请参阅 Collation and Unicode Support(默认排序规则通常是“CI”,表示不区分大小写。)
  • 可以说是,也可以说不。这取决于。如果您的数据库排序规则是 CS(区分大小写),那么是的,如果它的 CI(不区分大小写)则不是。通常对于 UserId 和 Password 等敏感信息,我们为 CS。

标签: sql database sql-server-2008 sql-server-2012


【解决方案1】:

默认情况下不区分大小写。所以它会将'ABC'和'abc'视为相同。但要使其区分大小写,您必须使用 COLLATE。 您可以通过示例HERE 找到详细说明。这也适用于加入。

【讨论】:

    【解决方案2】:

    在 Oracle 中是的,结果区分大小写,所以如果您正在寻找 cityName = 'ABC' 结果与 cityName = 'abc' 或 cityName ='Abc' 不会显示!

    您需要添加 UPPER 才能获得所有结果

    SELECT UPPER(cityName)
    FROM City;
    

    在这种情况下,无论结果如何,它都会将整列数据转换为大写

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 2014-08-13
      • 2015-09-17
      • 2013-03-16
      相关资源
      最近更新 更多