[英]How to use search multiple record for IN condition with different spellings in DB2
我在了解SQL方面沒有什么進步。 現在我有一個問題,希望您能幫助我。
我想在一個表上進行選擇,該表向我顯示了多次可用(不同拼寫)的所有記錄,例如:abcd123 AND ABCD123 AND ABcd123 ...
db2 "select * from table where row in (select row from table GROUP BY row HAVING (COUNT(row) > 1)) order by row"
例如:
db2 "select * from table where surname in (select surname from table GROUP BY surname HAVING (COUNT(surname) > 1)) order by surname"
上面的代碼向我顯示了可以用相同的拼寫(例如SMITH AND SMITH AND SMITH)多次獲得的記錄,但不能以不同的拼寫(例如SMITH AND Smith和Smith和Smith和Smith和Smith)獲得
請幫我。 (我無法加入JOINS。實際上不是我所知)
感謝幫助。
如果您唯一關心的是大寫字母,請使用lower()
或upper()
:
select t.*
from table
where lower(t.surname) in (select lower(t2.surname)
from table t2
group by lower(surname)
having count(*) > 1
)
order by surname;
如果您擔心其他潛在的拼寫錯誤,那么問題就很復雜了。
嘗試將UPPER()
函數添加到比較中
select * from table
where UPPER(surname) in (
select UPPER(surname) from table
GROUP BY UPPER(surname)
HAVING (COUNT(*) > 1)
) order by surname
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.