27,579
社区成员
发帖
与我相关
我的任务
分享
第一个问题:
首先楼主没有说明如果两个都是“是”的内容是,是怎么处理的,我假设这种情况不存在。
/************************************************************
**示例说明: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)
select *,
case when IsTempTrun ='是' then '暂转固'
when IsFormalTrun='是' then '正式转固'
end as 'TrunType'
from tablename