Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要基于SQL中的另一列值比较表中同一列的单元格值_Sql_Sql Server_Compare - Fatal编程技术网

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

需要基于SQL中的另一列值比较表中同一列的单元格值,sql,sql-server,compare,Sql,Sql Server,Compare,我需要根据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,因

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

谢谢:。如果不匹配,我需要显示一条消息,我的表可能包含大约500行,因此不希望每行显示一条消息。可能吗?@Kumar-我不明白。如果至少有一个A有false,你只想打印false?是的,我只需要根据A的值比较B的所有值是否都有相同的值。在上面的情况下,Siva rest有不匹配的情况。所以我需要打印false。