我需要根据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