需要根据SQL中的另一列值比较表中同一列的单元格值



我需要根据sql中另一列值的值来比较表中一列的单元格。

 Id       A      B
 1       Ram     50
 2       Ram     50
 3       Siva    123
 4       Siva    25
 5       Rose    75
 6       Rose    75
 7       Siva    123

我有上表,我需要检查 A 列中的 Ram 在 B 列中是否具有相同的值,如果没有,我应该返回 false。

在上述情况下,它应该返回 false,因为 Siva in(列 A) 在列 B 中具有不同的值。

我不知道该怎么做。请帮忙。

预期结果

返回"False",因为 Siva的值不匹配

这里有

一个技巧

select A, 
       case when min(B)=max(B) then 'True' else 'False' end as Flag
From yourtable 
Group by A

或者如果要显示每一行的标志列,则

select A, 
       case when min(B)over(partition by A)=max(B)over(partition by A) then 'True' else 'False' end as Flag
From yourtable 

更新:如果要显示False如果至少存在一个不匹配,则

SELECT CASE
         WHEN EXISTS(SELECT 1
                     FROM   yourtable
                     GROUP  BY A
                     HAVING Min(B) <> Max(B)) THEN 'False'
         ELSE 'True'
       END 

相关内容

  • 没有找到相关文章

最新更新