sql怎么通过条件判断选取查询字段

qq_34444180 2016-06-16 09:44:38
id f1 f2 f3 n1
1 A E I 2或3
2 B F J 2或3
3 C G K 2或3
4 D H L 2或3
如果n1=2就查询 f1,f2字段 显示 AE

如果n1=3就查询 f1,f3字段 显示 AI


这种语句该怎么个写法,求大神指导
...全文
5859 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqchenxue2 2016-06-17
  • 打赏
  • 举报
回复
select case when n1=2 then f1+f2 when n1=3 then f1=f3 end from tb
-小蕾- 2016-06-16
  • 打赏
  • 举报
回复

WITH A(id,f1,f2,f3,n1) AS(
SELECT 1,'A','E','I',2 UNION ALL          
SELECT 2,'B','F','J',2 UNION ALL 
SELECT 3,'C','G','K',3 UNION ALL 
SELECT 4,'D','H','L',3
)
--方法1:
select *,f2 as 'newCol' from A where n1=2
union all
select *,f3 as 'newCol' from A where n1=3

--方法2:
--select *,case when n1=2 then f2 when n1=3 then f3 else '' end as 'newCol' from A
足球不是方的 2016-06-16
  • 打赏
  • 举报
回复
case when 呗
道玄希言 2016-06-16
  • 打赏
  • 举报
回复
select * from ( select id, f1, f2 from 表 where n1 ='2' union all select id, f1, f3 as f2 from 表 where n1 ='3' ) as a order by a.id
yooq_csdn 2016-06-16
  • 打赏
  • 举报
回复


select  f1
     ,case n1 when '2' then f2
                      when '3' then f3
       end

kingtiy 2016-06-16
  • 打赏
  • 举报
回复

select case when n1=2 then f1+f2
when n1=3 then f1=f3 end from tb
--试下看看?
xdashewan 2016-06-16
  • 打赏
  • 举报
回复
要么case when,要么用union all
Ginnnnnnnn 2016-06-16
  • 打赏
  • 举报
回复
WITH A(id,f1,f2,f3,n1) AS(
SELECT 1,'A','E','I',2 UNION ALL          
SELECT 2,'B','F','J',2 UNION ALL 
SELECT 3,'C','G','K',3 UNION ALL 
SELECT 4,'D','H','L',3
)
SELECT *,
		f1 + CASE n1 WHEN 2 THEN f2 WHEN 3 THEN f3 END AS 组合
	FROM A

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧