我的列是日期值,我必须用最新日期值更新第四列
所以请帮我在Sql server中编写更新查询:
Date1 Date2 Date3 Latest Date
11/24/1991 1/14/2003 11/24/1991 1/14/2003
答案 0 :(得分:1)
请尝试使用以下代码段。
SELECT
CASE
WHEN Date1 >= Date2 AND Date1 >= Date3 THEN Date1
WHEN Date2 >= Date1 AND Date2 >= Date3 THEN Date2
WHEN Date3 >= Date1 AND Date3 >= Date2 THEN Date3
ELSE Date1
END AS Latest_Date
FROM TableName
答案 1 :(得分:1)
试试这个
UPDATE TableName
SET LatestDate = ( SELECT CASE WHEN Date1 >= Date2
AND Date1 >= Date3 THEN Date1
WHEN Date2 >= Date1
AND Date2 >= Date3 THEN Date2
WHEN Date3 >= Date1
AND Date3 >= Date2 THEN Date3
ELSE Date1
END
)
并且不要忘记添加条件
答案 2 :(得分:0)
你也可以这样做: -
Set Nocount On;
---- preparing test data
Declare @Dates Table
(
PrimaryIdKey Int Identity(1,1)
,Date1 Date
,Date2 Date
,Date3 Date
,LatestDate Date
)
Insert Into @Dates(Date1,Date2,Date3) Values
('11/24/1991','1/14/2003','11/24/1991')
----End :: preparing test data
Update dp
Set dp.LatestDate = d.DateValues
From @Dates As dp
Join
(
Select d.PrimaryIdKey
,Max(d.DateValues) As DateValues
From (
Select d.PrimaryIdKey, d.Dates, d.DateValues
From @Dates
UnPivot
(
DateValues
For Dates in (Date1, Date2, Date3)
) d
) As d
Group By d.PrimaryIdKey
) As d On dp.PrimaryIdKey = d.PrimaryIdKey
Select PrimaryIdKey
,Date1
,Date2
,Date3
,LatestDate
From @Dates As d