我一直试图在where子句中找到加号的含义。有人对这个有任何想法吗?被卡住了一下。查询本身非常简单,与加号类似,或没有加号。除非是因为某种原因,否则我希望将其删除。
SELECT userID from tblUser WHERE + userName = SYSTEM_USER
补充说明:这是在SQL Server 2008而不是Oracle中,它也不是来自Oracle迁移...如下所述,Oracle有一个较旧的连接符号,它使用+通常后缀为某些条件。 / p>
答案 0 :(得分:6)
一元+
运算符只是一个无操作。这个运算符的文档中解释了这一点,here:
虽然一元加号可以出现在任何数字表达式之前,但它 对表达式返回的值不执行任何操作。 具体来说,它不会返回负值的正值 表达。要返回否定表达式的正值,请使用 ABS功能。
我实际上相信这句话有点误导。我认为unary plus运算符会将字符串参数转换为数字。当应用于填充数字的常量字符串时,这实际上可以作为鼓励编译器在数字字段上使用索引的一种方式。
答案 1 :(得分:0)
看起来where子句中的plus运算符用于左外连接或右外连接。
你不需要它,但你可以阅读它们here。
您的查询以相同方式工作的原因是因为数据仅来自单个表。加入是多余的。
快速搜索还会引导我this answer,建议不要使用+方法进行连接。
<强>更新强>
由于您使用的是Microsoft SQL Server 2008,这是我最好的猜测:
&#39; +&#39;运算符用于字符串连接。