如何检查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
);
现在,您可以查看 OrderId
和 OrderDate
的顺序是否相同。类似于:
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 重命名为 Orders
。 Order
对于 table 来说是一个非常糟糕的名称,因为它是一个 SQL 关键字,也是一个保留字。
我写了一个查询来创建一个 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
);
现在,您可以查看 OrderId
和 OrderDate
的顺序是否相同。类似于:
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 重命名为 Orders
。 Order
对于 table 来说是一个非常糟糕的名称,因为它是一个 SQL 关键字,也是一个保留字。