我需要根据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,因为(A列)中的Siva在B列中具有不同的值。
我不知道该怎么做。请帮助。
结果预期
返回"错误",因为Siva存在价值不匹配
答案 0 :(得分:2)
这是一招
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