SQL SELECT语句中嵌入多重选择,用if语句

我是这样写的,不知道哪里错了
USE YGGL
GO
SELECT EmployeeID,Name,Address,DepartmentID=
(
IF (SELECT DepartmentID FROM Employees)='1' BEGIN RETURN '财务部' END
IF (SELECT DepartmentID FROM Employees)='2' BEGIN RETURN '人力资源部' END
IF (SELECT DepartmentID FROM Employees)='3' BEGIN RETURN '经理办公室' END
IF (SELECT DepartmentID FROM Employees)='4' BEGIN RETURN '研发部' END
IF (SELECT DepartmentID FROM Employees)='5' BEGIN RETURN '市场部' END
)
FROM Employees
使用CASE对Employees表按部门进行分类:
USE YGGL
GO
SELECT EmployeeID ,Name,Address,DepartmentID=
CASE DepartmentID
WHEN 1 THEN ‘财务部’
WHEN 2 THEN ‘人力资源部’
WHEN 3 THEN ‘金理办公室’
WHEN 4 THEN ‘研发部’
WHEN 5 THEN ‘市场部’
END
FROM Employees
练习: 使用IF语句实现上述功能

第1个回答  推荐于2017-11-23
SELECT EmployeeID,Name,Address,

case when DepartmentID ='1' then '财务部'
when DepartmentID ='2' then '人力资源部'
when DepartmentID = '3' then '经理办公室'
when DepartmentID ='4' then '研发部'
when DepartmentID = '5' then '市场部' END as DepartmentID
FROM Employees本回答被提问者采纳
第2个回答  2010-05-06
用case,这样写就可以了

USE YGGL
GO
SELECT EmployeeID,Name,Address,
Department=
(
case DepartmentID
when '1' then '财务部'
when '2' then '人力资源部'
when '3' then '经理办公室'
when '4' then '研发部'
when '5' then '市场部'
end
)
FROM Employees

如果DepartmentID是int,那1,2,3,4,5不要加引号
第3个回答  2010-05-06
SELECT EmployeeID,Name,Address,
decode(DepartmentID ,'1' ,'财务部'
,'2' ,'人力资源部'
,'3', '经理办公室'
,'4', '研发部'
,'5','市场部')as DepartmentID
FROM Employees
第4个回答  2010-05-06
IF 后面要true或者false
IF EXISTS(SELECT DepartmentID FROM Employees='1') ....
看行不?
第5个回答  2010-05-06
不要用等号,用as或者用空格试一下