我想有一個SQL查詢來選擇所有這些重複的行。例如,在名爲OWNER_NAME的列中,有數千條記錄。但我只選擇那些被複制像SQL查詢選擇僅複製的所有數據行
阿賈伊
阿賈伊·辛格
阿賈伊·沙瑪
博比·德爾
鮑比
維克拉姆·辛格
維克拉姆·夏爾馬的名字。
意味着整個字母系列應該覆蓋n的所有單名應刪除
我想有一個SQL查詢來選擇所有這些重複的行。例如,在名爲OWNER_NAME的列中,有數千條記錄。但我只選擇那些被複制像SQL查詢選擇僅複製的所有數據行
阿賈伊
阿賈伊·辛格
阿賈伊·沙瑪
博比·德爾
鮑比
維克拉姆·辛格
維克拉姆·夏爾馬的名字。
意味着整個字母系列應該覆蓋n的所有單名應刪除
我會大致這樣:
SELECT * FROM (
SELECT owner_name,
COUNT(*) OVER (PARTITION BY CASE WHEN instr(owner_name, ' ') = 0 then owner_name
else substr(owner_name, 1, instr(owner_name, ' ') - 1)
END) cnt
FROM table
) WHERE cnt > 1
將根據第一個字(直到第一個空間如果有的話)使組。也許你想upper
ize它也。
我會將它存儲到一個數據集並循環重複。
在那裏看不到任何重複...?上面哪一行應該刪除? – 2011-05-05 10:32:38
請輸入以上輸入中的預期輸出 – Mayank 2011-05-05 10:36:47
您是否想要選擇同時顯示爲全名的一部分的單個名稱,並刪除這些名稱? – StevieG 2011-05-05 10:48:48