SQL:嵌套合并和转换

时间:2015-03-24 22:57:47

标签: sql sql-server sql-server-2012 coalesce

该版本是带有SQL Server Management Studio的SQL Server 2012

我的作业要求我创建一个包含PeopleIDHireDateTermDate列的表格。 TermDate将重命名为Current,并将Null值合并为“当前员工”。这里的问题是TermDate是一个空列,需要转换为文本列才能合并......

我尝试了很多调整,但我似乎无法弄明白。这是我目前的迭代。现在我收到了错误

  

Msg 102,Level 15,State 1,Line 5
  ' TermDate'附近的语法不正确。

代码:

select 
   PeopleID
   ,HireDate
   ,coalesce(convert(varchar(10), TermDate, 1) TermDate, 'Current Employee') as [Current]
from 
   WORKERS

感谢帮助

2 个答案:

答案 0 :(得分:0)

为什么表达式中有两次TermDate?您只需要一次作为convert()的参数:

select PeopleID, HireDate,
       coalesce(convert(varchar(10),TermDate, 1), 'Current Employee') as [Current]
from WORKERS;

答案 1 :(得分:0)

select  PeopleID
        ,HireDate
        ,case 
            when TermDate is NULL then 'Current Employee')
            else convert(varchar(10), TermDate, 1)
         end as [Current]
    from WORKERS