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

时间:2014-03-25 12:47:55

标签: 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

3 个答案:

答案 0 :(得分:0)

此问题已在此处得到解答:SQL Server *= Operator?

除了作为老式学校的方式之外,正如fancyPants所提到的那样,它也可能并不总是能够始终如一地运作。您应该修改SQL语句以在FROM子句中包含JOINS。

要回答您的问题:*=是LEFT OUTER JOIN,而=*是一个正确的外部联接

答案 1 :(得分:0)

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

尽管如此,它不应再被使用了,你应该使用完整的语法。

答案 2 :(得分:0)

*= (LEFT OUTER JOIN)

=* (RIGHT OUTER JOIN)