比较单行表

时间:2015-01-25 17:14:59

标签: sqlite

我有一个名为ELZ_A_HS的表,如下所示,还有许多其他列未包含在内 enter image description here

可以看出,在比较2014-03-01和2014-07-08时,3_A列出现了差异。我试图通过

比较这两行数据
SELECT * FROM
(SELECT * FROM ELZ_A_HS WHERE DATE_ IS '2014-03-01' ) AS T1 LEFT OUTER JOIN (SELECT * FROM ELZ_A_HS WHERE DATE_ IS '2014-07-08') AS T2
ON T2."1_A" = T1."1_A"

但是上面的解决方案并没有产生正确的结果,我的意思是我要求的是某种差异化,告诉我在这个特定的列上数据不同......粗略的结果不一定必须是两个列或一列

1 个答案:

答案 0 :(得分:0)

看起来“日期”是您的主要关键。我只为你的部分表编写了CREATE TABLE和INSERT语句,并且我使用了伪数据。如果你在问题中包含这类内容,你通常会得到更好的答案。

在任何情况下,我希望每个表表达式返回一行。我认为公用表表达式需要3.8+版本。

with a as (select * from elz_a_hs where date = '2014-03-01')
   , b as (select * from elz_a_hs where date = '2014-07-08')
select a.date, b.date
             , a."1_a" = b."1_a" as "1_a"
             , a."2_a" = b."2_a" as "2_a"
from a, b;
a.date      b.date      1_a         2_a       
----------  ----------  ----------  ----------
2014-03-01  2014-07-08  1           0         

比较列中的1表示值相同; 0表示他们不同。 (我的简化数据与您的数据不符。)