合并sql查询

合并sql查询,sql,select,Sql,Select,我只想在一条语句中编写这段代码,但我需要在4个不同的列中编写 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='

我只想在一条语句中编写这段代码,但我需要在4个不同的列中编写

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'

对于sql-server2012+使用IIF或用例

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')

你能试试这样的东西吗:

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 DB,您最终需要添加dual。

哪种sql,哪种引擎?您的问题没有任何意义。如果一条语句返回更多行怎么办?即使它们都返回相同数量的行,您在什么基础上将它们合并到一个语句中?