Sql server SQL命令有问题吗

Sql server SQL命令有问题吗,sql-server,tsql,case,Sql Server,Tsql,Case,我在SQL Server 2012中遇到命令问题。我遇到的问题是,当我尝试在查询中运行case语句时,case语句之前的列将无法识别 我已经隔离了问题,发现问题出在这个街区: Select [Address 1] + Case when [Address 2] = '' then ',' + [Address 2] else '' end Case when Town <> '' then ',' + rtr

我在SQL Server 2012中遇到命令问题。我遇到的问题是,当我尝试在查询中运行case语句时,case语句之前的列将无法识别

我已经隔离了问题,发现问题出在这个街区:

  Select 
    [Address 1] + 
    Case 
      when [Address 2] = '' then ',' + [Address 2] 
      else '' end 
    Case 
      when Town <> '' then ',' + rtrim(Town) 
      else '' end 
    Case when County&lt;&gt;'' then ','+rtrim(County) else '' end
) as Address 
from Employees
选择
[地址1]+
案例
当[地址2]=''然后',''+[地址2]
“否则”结束
案例
当城镇“然后”时,“+rtrim(城镇)
“否则”结束
当县“”then'、“+rtrim(县)else”结束时的情况
)作为地址
来自员工
任何帮助都会很好,因为我还在学习SQL

以下是完整的代码块:

Select 
  'Chorley' as [Site Address],
  [EmpID] as EmployeeID,
  [First Name],
  [Surname],
  Manager as [Manager directly over employee],
  Email,
  '' as WorkPhone,
  [Home Tel],
  [Mobile Tel], 
  (
    [Address 1] + 
    Case when [Address 2] = '' then ',' + [Address 2] else '' end 
    Case when Town <> '' then ',' + rtrim(Town) else '' end 
    Case when County&lt;&gt;'' then ','+rtrim(County) else '' end) as Address,
  Pcode,
  [NI No],
  DOB,
  [Job Title],
  [Start Date],
  [Hours Worked],
  [Days And Times] as DaysAndTimes,
  Holidays,
  '', 
  [Contract] as 'Contract'
from Employees 
where [Employment Status]<>'Leaver' 
Order By [Department], [SurName]
选择
“Chorley”作为[网站地址],
[EmpID]作为雇员ID,
[名字],
[姓],,
经理作为[直接管理员工的经理],
电子邮件,
""作为工作电话,,
[家庭电话],,
[流动电话],,
(
[地址1]+
当[Address 2]=“then”、“+[Address 2]else”结束时的情况
城镇“then”和“+rtrim(城镇)else”结束时的情况
当县“then”和“+rtrim(县)else”结束时作为地址,
Pcode,
[倪否],,
DOB,
[职位名称],
[开始日期],
[工作时间],
[天与时]如同天与时,
假期,
'', 
[合同]作为“合同”
来自员工
其中[就业状况]“离职者”
[部门]命令,[姓氏]

您必须在案例之间使用+来连接:

以前

Select  [Address 1]+
        Case when [Address 2] = '' then ',' + [Address 2] else '' end 
        Case when Town <> '' then ',' + rtrim(Town) else '' end 
        Case when County<>'' then ','+rtrim(County) else '' end) as Address
from Employees
选择[地址1]+
当[Address 2]=“then”、“+[Address 2]else”结束时的情况
城镇“then”和“+rtrim(城镇)else”结束时的情况
县“”then'、“+rtrim(县)else”“end)作为地址时的情况
来自员工
之后

选择[地址1]+
当[Address 2]=“then”、“+[Address 2]else”结束时的情况+
城镇“then”和“+rtrim(城镇)else”结束时的情况+
县“”then'、“+rtrim(县)else”“end)作为地址时的情况
来自员工

格式化查询是个好主意。就像我说的。。。我还在学习。谢谢你的建议。请参阅编辑版。您在每个案例陈述的结尾没有加号。感谢您展示如何完成。现在,当我再次需要它时,我可以使用它=]。
Select  [Address 1]+
        Case when [Address 2] = '' then ',' + [Address 2] else '' end +
        Case when Town <> '' then ',' + rtrim(Town) else '' end +
        Case when County<>'' then ','+rtrim(County) else '' end) as Address
from Employees