2017-04-12 109 views
-1

我想只用一個語句來創建這段代碼,但我需要4個不同的列。合併SQL查詢

SELECT a017tkahwin AS klaki FROM a017 WHERE a017tkahwin='K' AND a017kjantina='L' 
SELECT a017tkahwin AS blaki FROM a017 WHERE a017tkahwin='B' AND a017kjantina='L' 
SELECT a017tkahwin AS kpuan FROM a017 WHERE a017tkahwin='K' AND a017kjantina='P' 
SELECT a017tkahwin AS bpuan FROM a017 WHERE a017tkahwin='B' AND a017kjantina='P' 
+3

什麼樣的SQL,哪個引擎? – maSTAShuFu

+0

你的問題沒有任何意義。如果一條語句返回更多行呢?即使他們全都返回相同數量的行,你將在什麼基礎上將它們合併成一個語句? – GurV

回答

-1

的SQL-server2012 +使用IIF以其它方式使用CASE

SELECT 
    iif(a017tkahwin = 'K' and a017kjantina = 'L',a017tkahwin,null) AS klaki, 
    iif(a017tkahwin = 'B' and a017kjantina = 'L',a017tkahwin,null) AS blaki, 
    iif(a017tkahwin = 'K' and a017kjantina = 'P',a017tkahwin,null) AS kpuan, 
    iif(a017tkahwin = 'B' and a017kjantina = 'P',a017tkahwin,null) AS bpuan 
FROM a017 WHERE a017tkahwin IN ('K','B') AND a017kjantina in ('L','P') 
0

你能只是嘗試這樣的事:

select (SELECT a017tkahwin FROM a017 WHERE a017tkahwin='K' AND 
a017kjantina='L') as klaki , (SELECT a017tkahwin FROM a017 WHERE 
a017tkahwin='B' AND a017kjantina='L') AS blaki , (SELECT a017tkahwin FROM 
a017 WHERE a017tkahwin='K' AND a017kjantina='P') AS kpuan , (SELECT 
a017tkahwin FROM a017 WHERE a017tkahwin='B' AND a017kjantina='P') AS bpuan 

對於Oracle數據庫,您需要從雙在加結束。