我有一列需要根據“:”之前和之后的內容分成兩列。如果沒有“:”,我需要第二列讀取“無”。
例子:
original_a:美國困倦:我們為什么累了,該怎么辦 標題:美國困了 副標題:我們為什么累了,怎么辦
original_b:冥想與談話療法標題:冥想與談話療法副標題:“無”
我嘗試了一個子查詢
SELECT headline,
CASE WHEN subtitle = ' ' THEN 'None' ELSE subtitle END as subtitle
FROM (
SELECT split_part(headline, ':', 1) as headline, split_part(headline, ':', 2) as subtitle
FROM table) as subquery
這會很好地拆分原始列,但在沒有第二部分時不會回傳“無”。
如何回傳“無”?謝謝
uj5u.com熱心網友回復:
一個包含空結果的NULLIF的簡單COALESCE怎么樣?
COALESCE回傳其引數中的第一個非空值。
NULLIF如果兩個引數匹配,將回傳 NULL。
SELECT
SPLIT_PART(headline, ':', 1) AS headline
,COALESCE(NULLIF(SPLIT_PART(headline, ':', 2), ''), 'None') AS subtitle
FROM table
你可以看到它在這里作業
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/447398.html
標籤:sql PostgreSQL 分裂 案子
下一篇:無法連接到Docker上的資料庫
