【问题标题】:SQL Server *= operator [duplicate]SQL Server *= 运算符 [重复]
【发布时间】:2013-08-17 21:07:09
【问题描述】:

我在WHERE 子句中遇到了一些带有*= 运算符的代码,但我只发现一件事将其描述为Sybase DB 的某种连接运算符。它似乎并没有真正适用。我认为这是某种按位的东西(我不太了解),但它根本不包含在 this reference 中。

当我将其更改为普通的 = 运算符时,它根本不会更改结果集。

确切的查询如下所示:

select distinct 
       table1.char8_column1,
       table1.char8_column2,
       table2.char8_column3,
       table2.smallint_column
from   table1, table2
where  table1.char8_column1 *= table2.another_char8_column

有没有人知道这方面的参考资料或可以对此有所了解?这是在 SQL Server 2000 中。

【问题讨论】:

    标签: sql operators sql-server-2000


    【解决方案1】:

    如果可以的话,杀死不推荐使用的语法,但是:

    *= (LEFT JOIN)
    
    =* (RIGHT JOIN)
    

    【讨论】:

      【解决方案2】:

      这将是相当于 LEFT JOIN 的“老派”。

      【讨论】:

        【解决方案3】:

        它是用于指定外连接的遗留语法,Microsoft 将其称为“非 ANSI 外连接运算符”。当数据库的兼容级别设置为 90 时,不支持这些外连接运算符(= 和 =)。

        这个问题之前已经在 StackOverflow 上回答过:What is this operand (*= star-equals) in SQL server 2000?

        【讨论】:

          猜你喜欢
          • 2010-12-16
          • 2010-11-02
          • 2014-03-28
          • 1970-01-01
          • 1970-01-01
          • 2019-07-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多