讓我們說我有一個包含文本的列,其中大部分都是特定格式,允許我洗掉日期部分。但是,有些文本沒有日期,我希望它回傳 NULL 而不是洗掉它。我將如何在 Redshift (SQL) 中執行此操作?
當前輸出:

CAST(REPLACE(SUBSTRING(c."name",3,9),'.','-') AS DATE)
有些欄位如下所示,我需要代碼在無法將子字串轉換為日期日期型別時回傳空值
例子:

錯誤:

uj5u.com熱心網友回復:
對于這種情況,您可以使用模式匹配和 case when
select case
when c."name" similar to '%\\d{2}.\\d{2}.\\d{2}%'
then CAST(REPLACE(SUBSTRING(c."name", 3, 9), '.', '-') AS DATE)
else null
end as cast_date;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/533987.html
標籤:数据库错误处理亚马逊红移
上一篇:每小時計數MySQL
