【问题标题】:SQL How can I select data that appear stored in similar columns from two tables ignoring the case?SQL 如何忽略大小写从两个表中选择存储在相似列中的数据?
【发布时间】:2015-11-09 22:06:47
【问题描述】:

例如,我有两个表 A 和 B,它们都有一个列 people。我想选择出现在两个表中的那些人。 但是表 A 中的名称为 Upper 大写,而 B 中的名称只有第一个字母为 Upper。 例如,表 A 中有一个 BOB,表 B 中有一个 Bob,我希望 Bob 在我的结果中被选中。

【问题讨论】:

  • 哪个 RDBMS?到目前为止,您尝试过什么?

标签: sql


【解决方案1】:

将名称转换为相同大小写并进行相交 查找出现在两个表格中的人

select upper(people)
from TableA
intersect
select upper(people)
from TableB
order by 1

【讨论】:

  • 谢谢我已经尝试了你的解决方案并得到了我想要的!
  • 对不起,我遇到了一个新问题。我希望结果按字母顺序排列。我尝试在 intersect 之前和最后通过查询下订单,但都失败了。
  • 在最后尝试order by 1
【解决方案2】:

一种方法是join:

select distinct a.name
from tablea a join
     tableb b
     on lower(a.name) = lower(b.name);

这不一定有效,因为大小写转换和distinct。顺便说一下,有些数据库默认不区分大小写。

【讨论】:

    猜你喜欢
    • 2010-09-07
    • 2017-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2011-01-13
    • 2011-08-26
    相关资源
    最近更新 更多