TRUNC(从Oracle到T-Sql Server的案例)
嘿,我一直在尝试将一个数据库从Oracle转换为Sql Server格式,这是我遇到的一个问题,在此我将非常感谢您的帮助 甲骨文行:TRUNC(从Oracle到T-Sql Server的案例),sql,oracle,case,Sql,Oracle,Case,嘿,我一直在尝试将一个数据库从Oracle转换为Sql Server格式,这是我遇到的一个问题,在此我将非常感谢您的帮助 甲骨文行: TRUNC(CASE WHEN (b.rsn IS NOT NULL OR A.zeroreport = 1) AND b.datereceived IS NULL THEN A.datereceived ELSE b.datereceived END), 我一直在尝试将其转换为SQl Server,到目前为止,我得到了: (b.rsn不为NULL或A.zero
TRUNC(CASE WHEN (b.rsn IS NOT NULL OR A.zeroreport = 1) AND b.datereceived IS NULL THEN A.datereceived ELSE b.datereceived END),
我一直在尝试将其转换为SQl Server,到目前为止,我得到了:
(b.rsn不为NULL或A.zeroreport=1)和b.datereceived时的情况
如果为空,则A.datereceived否则b.datereceived结束
,,
但不确定这样做是否正确。我刚刚删除了trun(不确定是否需要它)。您正在使用
trunc
获取日期部分。您可以在SQL Server中通过强制转换到日期来执行此操作。我想我会选择:
(CASE WHEN (b.rsn IS NOT NULL OR A.zeroreport = 1) AND b.datereceived IS NULL
THEN CAST(A.datereceived as DATE)
ELSE CAST(b.datereceived as DATE)
END),
或者,如果您更喜欢CONVERT()
,则将大小写作为第一个参数更容易阅读:
CONVERT(DATE,
(CASE WHEN (b.rsn IS NOT NULL OR A.zeroreport = 1) AND b.datereceived IS NULL
THEN A.datereceived
ELSE b.datereceived
END),
)