2016-07-15 52 views
0

我試圖選擇所有的實體,即使它們不是匹配表達式,但是這個只返回'true'值。如果regexp_match失敗,請選擇空列

SELECT entity_id, regexp_matches(error_params, '"select_flight"') IS NOT NULL 
FROM MyTable 
GROUP BY 1 

有沒有辦法做解決內部SELECT語句或在這種情況下,我們應該使用LEFT JOIN表與regexp_matches結果這樣的問題?

+1

爲什麼你需要一個'組by'這裏? –

+0

@vkp,我想選擇'MyTable'裏面'error_params'列中匹配的所有'entity_id'和正則表達式的個數。 –

+0

你能提供樣本數據和預期結果嗎?不知道你需要'regexp_matches',但很難理解你的問題。如果你想'count',那麼你需要使用'count' ... – sgeddes

回答

0

如果我正確理解你的問題,你可以使用countcase

select entity_id, 
     count(case when error_params like '%select flight%' then 1 end) cnt 
from mytable 
group by 1 
+0

謝謝你的這個想法,我試圖使用'計數(case error_params〜'正則表達式'然後1結束)',它的工作原理對於我來說足夠了。 –