2012-09-12 29 views
2

我有兩個疑問,給出正確的SQL查詢

SELECT col1,col2,col3 
    from scnd1 
where col2<>'' 
group by col1,col2,col3 
order by col1 

SELECT ROWNUMBER() OVER (PARTITION BY COL1) AS RN FROM SCND1)AS A 
WHERE RN > 1 

對於同一個表,我需要一個查詢這兩個 即結合起來。第一我想排序表以及刪除NULL,然後通過第二個查詢刪除重複的行。

+0

第二條語句是每一個DBMS在那裏無效的語法。 –

回答

0

嘗試一個子查詢,沿着這個線路:

SELECT 
    main.col1, 
    main.col2, 
    main.col3 
FROM scnd1 main 
JOIN (SELECT 
     col1, 
     col2, 
     col3, 
     ROW_NUMBER() OVER (PARTITION BY(col1) ORDER BY col1) AS RN 
     FROM SCND1 
     WHERE col2<>'' 
) sub 
ON sub.Col1 = main.Col1 AND sub.Col2 = main.col2 AND sub.Col3 = main.col3 
WHERE RN > 1 
GROUP BY main.col1,main.col2,main.col3 
ORDER BY main.col1 
+0

ROWNUMBER()超過(由COL1分區)作爲RN - 這是不正確的 – AnandPhadke

+0

仍然不正確 – AnandPhadke

+0

謝謝,沒有注意到。現在更正了這個 –