2016-07-23 75 views
-1

我只想從每列中選擇不同的值。沒有明顯的組合。 這是我的查詢,但它返回所有列的不同組合。我希望每個列顯示其自己的不同值,而不依賴於其他列。從所有列中選擇不同的值

$sql= "select distinct 
      CASE WHEN col1 not regexp '[0-9]' THEN col1 else null end as col1 
      ,CASE WHEN col2 not regexp '[0-9]' THEN col2 else null end as col2 
      ,CASE WHEN col3 not regexp '[0-9]' THEN col3 else null end as col3 from table_name"; 

它返回:

col1| col2| col3 
a  1  3 
b  2  4 
c  2  4 
d  1  3 

你們可以看到,COL2和COL3的值不是不同的,我想從COL2和COL3也僅是不同的。謝謝!

+0

你能詳細說一下'但不能工作嗎?你能告訴我們樣本數據和你想要的輸出是什麼嗎? –

+0

@TimBiegeleisen現在檢查它,希望你能得到它。 – tooba

+0

不同的作品跨越所有列,而不是單獨存在於'distinct col1,col2,col3' ...和您的'case' stmt不會影響的情況下 – Drew

回答

0

我最好的猜測,你想要的是使用union all

select distinct (case when col1 not regexp '[0-9]' then col1 end) as col1, 'col1' as which 
from table_name 
union all 
select distinct (case when col2 not regexp '[0-9]' then col2 end) as col2, 'col2' as which 
from table_name 
union all 
select distinct (case when col3 not regexp '[0-9]' then col3 end) as col3, 'col3' as which 
from table_name; 

這產生的結果與兩列,一個是列名,另一個是列一個獨特的價值。

+0

它不能正常工作。簡單的是,我希望分開來自所有列的不同值。希望你得到它。 – tooba

+0

如果你向戈登展示了一些你有的樣本數據和期望的結果,他可以在睡夢中做到這一點 – Drew

+0

它幫助我感謝。 – tooba

相關問題