2012-06-13 20 views
0

當我將創建字符表示爲所有組時,我有問題查看所有數據。 我在我的表中有字段組。該字段有id 1,2,3,4,我也已經提出了案件陳述。當我把id 1,那麼結果將是group1等等。我想要的是當我把字符'A'。然後顯示組中的所有數據。怎麼做?我不知道。如何查看所有數據並在數據沒有在MySQL中選擇時替換爲字符串

這是我的代碼: -

select case when a.group='1' then 'group1' 
    when a.group='2' then 'group2' 
    when a.group='3' then 'group3' 
    when a.group='4' then 'group4' 
    when a.group='A' then 'ALL GROUP' 
    end as group 
from kumpulan a 
where (a.group = &GROUP or &GROUP = 'A') 

如果組= 'A',然後在4行顯示 '組1', '組2', '3組', '組4'

+0

您的意思是如果組= 'A',然後顯示 '組1', '組2', '3組', '組4' 在4行? –

+0

是的,絕對。我想這樣做,但我不知道。 –

+0

我不這麼認爲,你可以在單個查詢中做到這一點。如果您正在使用任何編程語言,則根據需要構建查詢,或者您可以使用PL/SQL編寫存儲過程/函數。另一個解決方案是創建一個名爲groups的主表,輸入組代碼'A'的所有組名稱。 –

回答

0

如果問題出在「組」列中,您應該&集團作爲改變a.group:

select 
    case when &GROUP='1' then 'group1' 
    when &GROUP='2' then 'group2' 
    when &GROUP='3' then 'group3' 
    when &GROUP='A' then 'ALL GROUP' 
    end as group 
from 
kumpulan a 
where (a.group = &GROUP or &GROUP = 'A') 

我supose這個查詢是你真正的大查詢的abstrat可能是這樣的:

select 
    case when &GROUP='1' then 'group1' 
    when &GROUP='2' then 'group2' 
    when &GROUP='3' then 'group3' 
    when &GROUP='A' then 'ALL GROUP' 
    end as `group` , 
    sum(some_column) as total 
from 
kumpulan a 
where (a.group = &GROUP or &GROUP = 'A') 
group by `group` 
0
 select case 'A' when a.group='1' then 'group1' when a.group='2' then 'group2' when a.group='3' then 'group3' when a.group='A' then 'ALL GROUP' end as group from kumpulan a where (a.group = &GROUP or &GROUP = 'A'); 

實施例此:

 SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END; 
    -> 'one' 
相關問題