sql-server 如何检查SQL中的唯一值

9rnv2umw  于 2022-10-31  发布在  其他
关注(0)|答案(2)|浏览(200)

我有一个名为Bank的表,其中包含一个Bank_Values列。我需要一个计算的Bank_Value_Unique列来显示每个Bank_Value是否存在于表中的其他位置(即其计数是否大于1)。
我准备了此查询,但它不起作用。有人可以帮助我完成此查询和/或修改此查询吗?

SELECT 
    CASE 
        WHEN NULLIF(LTRIM(RTRIM(Bank_Value)), '') = 
            (SELECT Bank_Value
            FROM [Bank] 
            GROUP BY Bank_Value
            HAVING COUNT(*) = 1) 
        THEN '0' ELSE '1' 
    END AS Bank_Key_Unique
FROM [Bank]
pgx2nnw8

pgx2nnw81#

窗口计数应该可以工作:

SELECT
    *,
    CASE 
        COUNT(*) OVER (PARTITION BY Bank_Value)
        WHEN 1 THEN 1 ELSE 0
    END AS Bank_Value_Unique
FROM
    Bank
;
guz6ccqo

guz6ccqo2#

它也有效,但我也找到了解决办法:

select CASE WHEN NULLIF(LTRIM(RTRIM(Bank_Value)),'') = 
       (select Bank_Value 
       from Bank 
       group by Bank_Value
       having (count(distinct Bank_Value) > 2 )) THEN '1' ELSE '0' END AS 
       Bank_Value_Uniquness
from Bank

它缺少“独特”的部分。

相关问题