如何检查sql中第一列的行是否大于第二列(使用IF语句)

How to check if the row of the first column is greater than the second in sql (Using IF Statement)

我写了一个查询来创建一个 table 一列

CREATE TABLE ORDER( 
   Order_Date DATE NOT NULL
)

我在列中插入了两个值

--Order_Date--
2018-05-21
2018-01-21

如何使用 IF 语句检查第一行是否大于或小于第二行?

SQL tables代表无序集合。 table 中没有 "first" 行或 "second" 行。

如果你包含一个标识列,你可以做你想做的事:

CREATE TABLE ORDERS ( 
   OrderId IDENTITY(1, 1) PRIMARY KEY,
   Order_Date DATE NOT NULL
);

现在,您可以查看 OrderIdOrderDate 的顺序是否相同。类似于:

select (case when max(case when seqnum = 1 then order_date end) >
                  max(case when seqnum = 2 then order_date end)
             then 'greater than'
             when max(case when seqnum = 1 then order_date end) =
                  max(case when seqnum = 2 then order_date end)
             then 'equal'
             when max(case when seqnum = 1 then order_date end) <
                  max(case when seqnum = 2 then order_date end)
             then 'less than'
        end) as comparison
from (select o.*, row_number() over (order by OrderId) as seqnum
      from orders o
     ) o;

请注意,我还将 table 重命名为 OrdersOrder 对于 table 来说是一个非常糟糕的名称,因为它是一个 SQL 关键字,也是一个保留字。