簡體   English   中英

SQL - 在多列中搜索多個值以創建標志

[英]SQL - Search multiple values across multiple columns to create a flag

我正在嘗試跨多列搜索多個值,以便我可以創建包含條件標志,但無法找出最佳方法。 我需要創建一個標志,所以我試圖不必使用where語句

我現在在我的代碼中只有一個值,它可以工作:

when 'a' in (col1, col2, col3, col4) 
then 1 
else 0 
end as col_a

想做類似的事情,但無法弄清楚:

when 'a', 'b', 'c' in (col1, col2, col3, col4) 
then 1 
else 0 
end as col_all

任何幫助表示贊賞! 謝謝!

這是你想要的嗎?

(case when 'a' in (col1, col2, col3, col4) and
           'b' in (col1, col2, col3, col4) and
           'c' in (col1, col2, col3, col4) 
      then 1 else 0
 end) as col_all

是否要全部匹配或任何匹配不太清楚。 如果是后者,請使用or而不是and

嘗試這個

case array_except(array['a','b','c'],array[col1,col2,col3,col4]) 
when array[] 
then 1 
else 0 
end as col_all 

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM