我从当前用户那里获得了一些代码,但我无法弄清楚如何转换为Microsoft SQL Server 2014。
,TO_CHAR( COALESCE( TASK.ACT_START_DATE, TASK.TARGET_START_DATE,
TASK.EARLY_START_DATE ), 'MM/DD/YYYY HH24:MI')
||
COALESCE( NVL2( TASK.ACT_START_DATE, ' A', NULL),
NVL2`enter code here`( TASK.TARGET_START_DATE, ' P', NULL),
NVL2( TASK.EARLY_START_DATE, ' E', NULL)) AS START_DATE_FMT
必须转换日期字段才能添加" A"," P"或者" E"在约会之后。
有没有办法在SQL Server中使用类似的代码来获取信息?我考虑使用CASE语句来验证Null,但无法正确识别语法。
答案 0 :(得分:0)
试试这个......
FORMAT( COALESCE( TASK.ACT_START_DATE, TASK.TARGET_START_DATE,TASK.EARLY_START_DATE ), 'MM/dd/yyyy HH:mm') +
CASE WHEN TASK.ACT_START_DATE IS NOT NULL THEN ' A'
WHEN TASK.TARGET_START_DATE IS NOT NULL THEN ' P'
WHEN TASK.EARLY_START_DATE IS NOT NULL THEN ' E'
ELSE '' END AS START_DATE_FMT
答案 1 :(得分:0)
这是另一种选择。不要以为你需要一个案例表达。
select
FORMAT( COALESCE( TASK.ACT_START_DATE, TASK.TARGET_START_DATE,TASK.EARLY_START_DATE ), 'MM/dd/yyyy HH:mm')
+ coalesce(' A' + CONVERT(VARCHAR(19),TASK.ACT_START_DATE,20)
, ' P' + CONVERT(VARCHAR(19), TASK_TARGET_START_DATE,20)
, ' E' + CONVERT(VARCHAR(19), TASK.EARLY_START_DATE,20))