SELECT JOIN +Column



我有以下查询:

SELECT A.*, B.* FROM Employee AS A
LEFT JOIN  EmployeeHistory AS B ON +B.EmployeeId = CASE 
WHEN DeptId=1 THEN SUBSTRING(FunctionRef,2,3)
WHEN DeptId=2 THEN SUBSTRING(FunctionRef,2,2) END

我想在+B.EmployeeId之前理解+,因为SQL Server没有抛出错误

您发布的SQL不是有效的T-SQL。这是因为在您将Employee的别名定义为A之后,您就有了ON("A"代表Employee?What A?A代表Apple,E代表Employer。不良习惯:使用表别名,如(A、b、c(或(t1、t2、t3((。FROM中的第一个表后面不能跟ONON用于要加入的表。

如果第一个ONJOIN,则执行工作:db<gt;不停摆弄但+所做的只是作为前导加号或级联运算符(这取决于EmployeeID的数据类型(。SELECT +1, + '';是完全有效的(尽管很奇怪(语法。+基本上什么都没做。

免责声明:开头一段是基于OP发布的原始SQL,他们表示已经从工作环境中复制粘贴了该SQL

+是一个一元加号。它类似于一元减号(-(,但它没有任何作用。如果第二个参数是字符串,那么它是一个一元字符串连接符,再次不执行任何操作。

我不确定目的是什么。

你可以看看这个来获得一个想法:

select ++++1, + '', +'abc'

也许您忘记包含第二行JOIN table2 as B。如果包含该行,则查询可能会变为有效。

+B.EmployeeId的表达可以表示0+B.EmployeeId,因此加号不会有任何影响。

最新更新