如何两行取一行

lunhuifengzheng 2010-07-29 03:39:49
在表中有这两列
IsTempTrun varchar 是否进行暂转固
IsFormalTrun varchar 是否进行正式转固
现在想用sql把这两列整合成一列,如果IsTempTrun为“是”,就在(TrunType,别名,为实际表中不存在)转固类型这列中显示为,暂转固。如果IsFormalTrun为“是”,就在转固类型这列中显示为,正式转固。如果两者都为空,就显示为空。

表示:
1、正式转固
IsTempTrun IsFormalTrun

用SQL语句显示为:
TrunType
正式转固

2、暂转固
IsTempTrun IsFormalTrun

用SQL语句显示为:
TrunType
暂转固

3、为空
IsTempTrun IsFormalTrun

用SQL语句显示为:
TrunType

请帮忙解答,谢谢


...全文
187 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckyshuping8741 2010-08-01
  • 打赏
  • 举报
回复
select *,
case when IsTempTrun ='是' then '暂转固'
when IsFormalTrun='是' then '正式转固'
when (IsFormalTrun='' or IsFormalTrun is null)
and (IsTempTrun ='' or IsTempTrun is null) then '正式转固'
end as TrunType
from tablename
zhuguson 2010-08-01
  • 打赏
  • 举报
回复
帮顶啊,upupupupup
  • 打赏
  • 举报
回复
第一个问题:
首先楼主没有说明如果两个都是“是”的内容是,是怎么处理的,我假设这种情况不存在。
/************************************************************
**示例说明:CASE的简单用法之一
**示例编写:Gaojier
************************************************************/
CREATE DATABASE TEST
GO
USE TEST
CREATE TABLE TestTab(ID INT,COLNAME VARCHAR(10),ISTEMPTRUN VARCHAR(2),ISFORMALTRUN VARCHAR(2))
INSERT TestTab
SELECT 1,'张三','是','' UNION ALL
SELECT 2,'张四','','是' UNION ALL
SELECT 3,'张五','','是' UNION ALL
SELECT 4,'张六','是','' UNION ALL
SELECT 5,'张七','是','是'
GO
SELECT ID AS 编号
,COLNAME AS 姓名
,(CASE WHEN ISTEMPTRUN='是' AND ISFORMALTRUN='' THEN '暂转固'
WHEN ISTEMPTRUN='' AND ISFORMALTRUN='是' THEN '正式转固'
WHEN ISTEMPTRUN='' AND ISFORMALTRUN='' THEN ''
ELSE '没有考虑' END) AS 转固类型
FROM TestTab
USE MASTER
DROP DATABASE TEST


(5 row(s) affected)
编号 姓名 转固类型
----------- ---------- --------
1 张三 暂转固
2 张四 正式转固
3 张五 正式转固
4 张六 暂转固
5 张七 没有考虑

(5 row(s) affected)
ask_chang 2010-07-30
  • 打赏
  • 举报
回复
问题:如果两个都是呢?你测试一下是不是为 '暂转固'

select *,
(case
when IsTempTrun ='是' then '暂转固'
when IsFormalTrun='是' then '正式转固'
else ''
end) as 'TrunType'
from tablename
oyctzl 2010-07-29
  • 打赏
  • 举报
回复


select *,
case when IsTempTrun ='是' then '暂转固'
when IsFormalTrun='是' then '正式转固'
end as 'TrunType'
from tablename

lunhuifengzheng 2010-07-29
  • 打赏
  • 举报
回复
谢谢各位帮顶,求救啊...
jaydom 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 angel1201 的回复:]
引用 1 楼 shmilywcd 的回复:
没看明白 帮顶

不知道算不算灌水
如果算
麻烦斑竹删除
3Q
[/Quote]
如果这样都算灌水的话,那以后都不用发帖了
永生天地 2010-07-29
  • 打赏
  • 举报
回复
left join + case
Angel1201 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shmilywcd 的回复:]
没看明白 帮顶
[/Quote]
不知道算不算灌水
如果算
麻烦斑竹删除
3Q
天-笑 2010-07-29
  • 打赏
  • 举报
回复
没看明白 帮顶

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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