我正在撰寫資料質量規則,在這種情況下,我希望為名為“ID”的列回傳重復值。問題是,當沒有重復項時,將回傳 null 而不是 0。我需要為非重復項回傳 0。我嘗試將 ISNULL 放在 SELECT ID 和 SELECT COUNT(ID) 陳述句附近,但沒有成功。我根本無法弄清楚如何將 ISNULL 陳述句放在哪里(如果它甚至可以準確使用),或者是否應該使用 COALESCE,或者我是否需要外部聯接(根據類似的問題)。任何幫助是極大的贊賞。謝謝!
SELECT
CAST('DQR_ID_HERE') AS VARCHAR(255)) AS DQR_ID
CAST('DB_NAME_HERE') AS VARCHAR(255)) AS DB_NAME
CAST('ID') AS VARCHAR(255)) AS COLUMN_TO_DUPE_CHECK
SUM (DEFECT.DEFECT_COUNT) AS DEFECT_COUNT
FROM (
SELECT
ID,
COUNT(ID) AS DEFECT_COUNT
FROM DB_NAME_HERE
GROUP BY ID
HAVING (COUNT(ID)) > 1
) AS DEFECT
uj5u.com熱心網友回復:
你只需要在ISNULL周圍放置SUM
ISNULL(SUM (DEFECT.DEFECT_COUNT), 0)
不要把ISNULL 里面的SUM,因為這樣你仍然會得到NULL,如果沒有行總結。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/313280.html
標籤:sql sql-server 查询语句
下一篇:如何選擇具有相同值的記錄?
