WHERE子句中的SQL乘以等于(* =)

我刚刚在我们拥有的一些非常古老的 SQL 代码中看到了最奇怪的东西。

我刚刚在我们拥有的一些非常古老的 SQL 代码中看到了最奇怪的东西。

where 子句中有一个乘法等于运算符。它有特殊的含义吗?它选择适当的列,但o.nameNULL

我确定这是一个错字,但我只想确认。

select  c.name,
        c.status,
        o.name
from    syscolumns c,
        sysobjects o
where   c.id = object_id('dbo.MyTable')
and     c.cdefault *= o.id
order by colid asc
0

这个问题已经在这里回答:SQL Server *= Operator?

除了是老派的方式,如 fancyPants 提到的,它也可能并不总是一致地工作。您应该修改您的 SQL 语句以在 FROM 子句中包含 JOINS。

要回答您的问题:*=是左外部连接,而=*是右外部连接

0

如前所述,这是一个LEFT OUTER JOIN。同样,= * 是一个RIGHT OUTER JOIN

也就是说,它不应该再使用了,你应该使用完整的语法。

0
*= (LEFT OUTER JOIN)
=* (RIGHT OUTER JOIN)

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(4)
如何在AzurePipelines中为Terraform激活调试模式
上一篇
BIM360是否具有用于FieldAPI的oAuth登录
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(12条)