我有一個要求,當前型別是 NUMERIC,但我需要它是 DATETIME,我目前正在與資料所有者合作,讓他們轉換資料型別,因此我不必執行這些步驟。
如上所述,NUMERIC 型別需要更改為 DATETIME,但我有一個存在零值的問題。我目前已經撰寫了兩個 SQL 查詢來獲得結果,但我希望能夠在一個查詢中做到這一點。
請參閱以下兩個查詢:
查詢 1
SELECT
MATERIAL,DESC,NUMBER,
CASE
WHEN START_ACTUAL = 0 THEN NULL
ELSE START_ACTUAL
END AS START_ACTUAL,
CASE
WHEN END_ACTUAL = 0 THEN NULL
ELSE END_ACTUAL
END AS END_ACTUAL,
FROM `SAMPLEFILE1`
查詢 2
SELECT
MATERIAL,DESC,NUMBER,
PARSE_DATETIME('%Y%m%d%H%M%S', CAST(START_ACTUAL AS STRING)) AS START_ACTUAL,
PARSE_DATETIME('%Y%m%d%H%M%S', CAST(END_ACTUAL AS STRING)) AS END_ACTUAL,
FROM `SAMPLEFILE1_VIEW`
我敢肯定有人會馬上把我放進去,這很簡單:)
提前致謝
uj5u.com熱心網友回復:
您可以將案例陳述句包裝在 CAST 和 PARSE_DATETIME 中,但您可以只使用 nullif:
SELECT
MATERIAL,DESC,NUMBER,
PARSE_DATETIME('%Y%m%d%H%M%S', CAST(NULLIF(START_ACTUAL,0) AS STRING)) AS START_ACTUAL,
PARSE_DATETIME('%Y%m%d%H%M%S', CAST(NULLIF(END_ACTUAL,0) AS STRING)) AS END_ACTUAL,
FROM `SAMPLEFILE1_VIEW`
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/459854.html
