日期:2014-05-18  浏览次数:20489 次

请教一条数据库T-SQL语句,简单的判别语句,就是不知道啊
有表:employee  
属性为:name   salary(工资)
现在要求把工资大于10000的定义为高工资,低于的叫低工资。
并且输出名字和工资,以及工资分类。要求用T-SQL语句。应该是IF..Else...的吗??
++++++++++++++++
use   Company
declare   @vstr   varchar(10)
if(select   salary   from   employee) <30000
begin  
set   @vstr= '低工资 '  
end
else   if(select   salary   from   employee) <50000
begin
set   @vstr= '中等工资 '
end
else
  begin
set   @vstr= '高工资 '
end
select   name,salary,@vstr   from   employee;
++++++++++++++++++++++++++++++++++++++++++
这么写不对啊,应该怎么做??

------解决方案--------------------
select name,salary,case when salary <30000 then '低工资 '
when salary between 30000 and 50000 then '中等工资 '
else '高工资 ' end as '工资分类 '
from employee
------解决方案--------------------
這麼寫

Select
name,
salary,
(Case When salary <30000 Then '低工资 '
Else Case When salary <50000 Then '中等工资 '
Else '高工资 ' End
End) As 工资分类
From
employee
------解决方案--------------------
select name,salary,case when salary <10000 then '低工资 '
else '高工资 ' end as 工资分类
from employee

------解决方案--------------------
declare @tb table([name] varchar(10),salary decimal(10,2))
insert into @tb select 'liu ',10000
union all select 'zhen ',20000
union all select 'li ',8000
union all select 'yang ',25000

select [name],salary,salary,case when salary> 10000 then 'high ' else 'low ' end as grade
from @tb
------解决方案--------------------
楼主不要把简单的问题想复杂了,凡尽量往简单的方面想,没错的。。
我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html