我有两个日期列。 有时它们都有日期(两列中总是相同),有时一个为空,一个具有日期值。 因此,我正在尝试获得一列而不是两列。 如果一个为空,它将从另一列获取日期值;如果两个都具有值(始终相同),则将仅从两列中获取任何值。
我尝试了UNION命令,但是没有给我想要的结果。
答案 0 :(得分:2)
答案 1 :(得分:2)
在这种情况下,SQL Server有两个不同的选项。您可以使用COALESCE,ISNULL或CASE语句。
根据您提供的信息,我将使用COALESCE。与ISNULL相比,它具有多个优点,并且实现起来非常简单。对于您要执行的操作,CASE语句似乎过大了。请查看上面的链接,以获取有关每种解决方案的更多信息。
答案 2 :(得分:0)
如果是SQL,则可以使用ISNULL语句
SELECT ISNULL(ReturnDate,RepartureDate) as dateAct FROM AviationReservation_dev
答案 3 :(得分:0)
尝试案例说明:
select
case when column1 is null then column2
when column2 is null then column1
else column1
end as merged_column
from original_table
答案 4 :(得分:0)
UPDATE tableName
SET Date1Column = ISNULL(Date1Column, Date2Column);
上下文:ISNULL ( check_expression , replacement_value )
,如果第一个参数不为null,它将使用该参数。
更新后,删除另一列。
答案 5 :(得分:0)
似乎两列都不为空,那么在这种情况下,您可以执行以下操作:
SELECT
CASE
WHEN column1 IS NULL THEN column2
WHEN column2 IS NULL THEN column1
ELSE column1 orcolumn2