Sql server SQL命令有问题吗
我在SQL Server 2012中遇到命令问题。我遇到的问题是,当我尝试在查询中运行case语句时,case语句之前的列将无法识别 我已经隔离了问题,发现问题出在这个街区: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
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]+
案例
当[地址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<>'' 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