Ich kämpfe mit, warum die folgende Fallanweisung nicht funktioniert.SQL Server CASE WENN ELSE STATEMENT nicht funktioniert, wie sollte
Was ich tun möchte, ist der Monat von einem Tag („Tag des Todes“) in zwei Zeichen zu konvertieren, so dass 1. JANUAR wird, 2. Februar und Oktober bis Dezember wird bleiben, wie ihre beiden Zeichenlängen
jedoch scheint der Code mir
SELECT
LEN(MONT(RAW.dbo.ONS_Death_DOD201516FYQ1.DATE_OF_DEATH)) AS length_of_month,
(CASE
WHEN LEN(MONTH(CAST(RAW.dbo.ONS_Death_DOD201516FYQ1.DATE_OF_DEATH as VARCHAR(20)))) = 1
THEN CONCAT('0', MONTH(RAW.dbo.ONS_Death_DOD201516FYQ1.DATE_OF_DEATH))
END) AS DERIVED_MOD
FROM
RAW.dbo.ONS_Death_DOD201516FYQ1
die oben genannten arbeiten und wandelt jene mit 1 Ziffer 2 werden stumping aber wenn ich versuche, die zweite Option zu implementieren unten es scheint nicht zu funktionieren.
SELECT
LEN(MONTH(ONS.DATE_OF_DEATH)) as length_of_month,
(CASE
WHEN LEN(MONTH(CAST(RAW.dbo.ONS_Death_DOD201516FYQ1.DATE_OF_DEATH as VARCHAR(20)))) = 2
THEN MONTH(RAW.dbo.ONS_Death_DOD201516FYQ1.DATE_OF_DEATH)
WHEN LEN(MONTH(CAST(RAW.dbo.ONS_Death_DOD201516FYQ1.DATE_OF_DEATH as VARCHAR(20)))) = 1
THEN CONCAT('0', MONTH(RAW.dbo.ONS_Death_DOD201516FYQ1.DATE_OF_DEATH))
END) AS DERIVED_MOD
FROM
RAW.dbo.ONS_Death_DOD201516FYQ1
Jede Hilfe wird sehr geschätzt.
Fall Ausdruck, nicht case-Anweisung ... – jarlh
Dies scheint SQL Server zu sein. Ich habe das Tag hinzugefügt. – trincot
Ich würde 'Fall len (...) wenn 2 dann Monat (...), wenn 1 dann concat (...) enden', um ein wenig Tipparbeit zu speichern. – jarlh