我正在尝试逐行比较两个select语句的结果。 例如,表格如下所示:
GUID | NUMBER (auto inc) | VERSION (timestamp) | Name
A | 4 | 1 | Robert
B | 9 | 2 | John
C | 14 | 3 | Magret
现在选择看起来像
select guid from table order by number;
select guid from table order by version;
现在,如果GUID在同一行的两个选择中相同,则应逐行比较这些表。如果是这样,则返回true,否则返回false。
编辑: 目标是检测列GUID和NAME的更改。列NUMBER是一个自动增量值,仅在创建条目时增加。 VERSION是一个时间戳,每次更新条目时都会更改。现在,目标是比较上面的两个选择查询以确定对表的更改,因为如果条目的顺序不同,则发生了更改。
谢谢, shirocko
答案 0 :(得分:0)
如果您想知道所有行是否与两列相同,那么:
select (case when count(*) = sum(case when rnk_1 = rnk2 then 1 else 0 end)
then 'All Same'
else 'Different'
end)
from (select t.*,
rank() over (order by number) as rnk_1,
rank() over (order by version) as rnk_2
from t
) t;