SQL代码如下:SELECT DISTINCT A.CRDATTIM KEYID, A.INXFLD01 POLN, 
(CASE WHEN B.STATCD IN ('SIGNOKREJ','SIGNERRREJ') THEN 'REJT' ELSE 'CALL' END) FLAG
  FROM W03U999S A, W03U999S B
 WHERE A.INXFLD01 *= B.INXFLD01 
各位高手说说看,我以前从来没看到过*=这个操作符

解决方案 »

  1.   

    *=
    这个是Oracle里面的,
    SQL里面对应的就是Left Join
      

  2.   

    但是我的确在SQL Server里面看到了,并且是可以运行的。
    而且帮助里面也有关于这个操作的解释,就是英文的而且不多看不明白。
      

  3.   


    SQL2000里也可以用,到了SQL2005就不行了
      

  4.   


    就是Left join的意思,,,
      

  5.   

    SQL Server 支持 SQL-92 外联接语法,以及在 WHERE 子句中使用 *= 和 =* 运算符指定外联接的旧式语法。由于 SQL-92 语法不容易产生歧义,而旧式 Transact-SQL 外联接有时会产生歧义,因此建议使用 SQL-92 语法。引:SqlServer帮助
      

  6.   

    对比着看一下就知道了:
    create table a(id int)
    create table b(id int)insert a select 1
    union all select 2
    union all select 3insert b select 4
    union all select 2
    union all select 3select a.* from a,b where a.id*=b.id
    /*
    id
    -----------
    1
    2
    3(3 row(s) affected)
    */select a.* from a left join b on a.id=b.id
    /*
    id
    -----------
    1
    2
    3(3 row(s) affected)
    */select a.* from a join b on a.id=b.id
    /*
    id
    -----------
    2
    3(2 row(s) affected)
    */drop table a,b
      

  7.   

    Transact-SQL 联接
    在早期的 Microsoft® SQL Server™ 2000 版本中,使用 *= 和 =* 在 WHERE 子句中指定左、右外部联接条件。有时,该语法会导致有多种解释的不明确查询。FROM 子句中指定遵从 SQL-92 的外部联接,不会导致上述不确定性。因为 SQL-92 语法更为精确,所以,本版中未包括有关在 WHERE 子句中使用旧的 Transact-SQL 外部联接语法的详细信息。以后的 SQL Server 版本可能不再支持该语法。任何使用 Transact-SQL 外部联接的语句都应改为使用 SQL-92 语法。SQL-92 标准支持 FROM 或 WHERE 子句中的内部联接规范。WHERE 子句中指定的内部联接不会出现与 Transact-SQL 外部联接语法相同的不确定性问题。现在大多用left join ,right join ,full join来替换。
      

  8.   

    *= 是以前 SQL 查询常用的左连接形式,是SQL-86中的语法规范,SQL-92使用from子句中的连接,在 SQL Server 2000 中开始对此作限制,但仍可使用.据 2000 的联机丛书中说,类似于 select a.col1,b.col2 from a,b where a.id=b.id 这种形式(此为内联,包括左联*=,右联=*)会产生二义性,强烈不推荐使用,2005中不直接支持该连接方法,但如果使用存储过程 sp_dbcmptlevel 将当前数据库的兼容级别设置为 80 或更低,则仍可以执行这样的语法.
      

  9.   

    这是SQL Server2000里的,写语句最好按照SQL92标准来写,写成left join,这样的写法可以移植到其他的数据库的,
    如果用*=有些数据库不支持的。
      

  10.   

    *= 在mssql中不支持,在mssql中就用left join
      

  11.   

    在SQL SERVER中*=是早期的左联接语法,当使用*= (左联)和=*(右联)表示两表间的联接时,还能区分,多个
    表联接或做全外联接(*=*)时则不易区分,也容易产生歧义,已不推荐使用,知道有这种用法就行了