declare @sex nvarchar(50)
select @sex = TitleOfCourtesy from dbo.Employees
print @sex
--case 的使用  
declare @sex nvarchar(50)
select @sex = TitleOfCourtesy from dbo.Employees
    where EmployeeID = 5
case @sex
when 'Ms.' then print'女士'
when 'Mr.' then print'男士'
else print'nothing'
end
请问这样用错误在哪里?

解决方案 »

  1.   

    declare   @sex   nvarchar(50) 
    select top 1  @sex   =   TitleOfCourtesy   from   dbo.Employees 
    print   @sex 
    --case   的使用     
    declare   @sex   nvarchar(50) 
    select  top 1 @sex   =   TitleOfCourtesy   from   dbo.Employees 
            where   EmployeeID   =   5 select case   @sex 
    when   'Ms.'   then   print'女士' 
    when   'Mr.'   then   print'男士' 
    else   print'nothing' 
    end 
      

  2.   

    select TitleOfCourtesy = case TitleOfCourtesy when 'Ms.' then 女士' when 'Mr.' then '男士'  end from dbo.Employees 
      

  3.   


    如果要简洁,二楼的已经够了。
    楼主是要将你的改成这样?
    declare   @sex   nvarchar(50) 
    select   @sex   =   TitleOfCourtesy   from   dbo.Employees  where   EmployeeID   =   5 
    select case   @sex 
    when   'Ms.'   then   '女士' 
    when   'Mr.'   then   '男士' 
    else   'nothing' end 还是:
    declare   @sex   nvarchar(50) 
    select   @sex   =   TitleOfCourtesy   from   dbo.Employees  where   EmployeeID   =   5 
    if(@sex='Ms.') print '女士' 
    if(@sex='Mr.') print  '男士' 
    else  print   'nothing' 
      

  4.   

    select @sex = TitleOfCourtesy from dbo.Employees 
    where EmployeeID = 5 
    print @sex 
    print case @sex 
    when 'Ms.' then '女士' 
    when 'Mr.' then '男士' 
    else 'nothing' 
    end 
    我已经明白了,case只能用在表达式中.