【问题标题】:Incorrect syntax near ' *= ' in SQL server 2012 [closed]SQL Server 2012中'* ='附近的语法不正确[关闭]
【发布时间】:2013-12-27 13:20:23
【问题描述】:
SELECT  LM.LocationName ,
        PPD.RegistrationNo ,
        ISNULL(PPD.Title, '') + ' ' + ISNULL(PPD.FirstName, '') + ' '
        + ISNULL(PPD.LastName, '') AS CustomerName ,
        PPD.RegistrationDate ,
        PPD.Ref_By_Patient ,
        ISNULL(PPD1.Title, '') + ' ' + ISNULL(PPD1.FirstName, '') + ' '
        + ISNULL(PPD1.LastName, '') AS Ref_By_PatientName ,
        PPD.Mobile ,
        PPD.Res_Telephone ,
        PPD.Off_Telephone ,
        PPD.EMail ,
        KB.KwnBy ,
        RTM.RegType ,
        PPD.Street ,
        AM.area_name ,
        CM.city_name ,
        DM.DoctorName ,
        PPD.SpecialDiscount ,
        PPD.SpecialDisPercentage ,
        PPD.ServiceDisPercentage ,
        PPD.Type ,
        PPD.TypeChangedDate
FROM    Patient_Personal_Details PPD ,
        LocationMaster LM ,
        KnownBy KB ,
        Area_Master AM ,
        RegTypeMaster RTM ,
        City_Master CM ,
        Doctor_Master DM ,
        Patient_Personal_Details PPD1
WHERE   PPD.Loc_Id = LM.LocationCode
        AND PPD.Knownby*=CAST(KB.Knwid AS VARCHAR(25))
        AND PPD.Area*=AM.area_id
        AND PPD.City*=CM.city_id
        AND PPD.Doctorname*=DM.Doctor_Id
        AND PPD.RegTypeId*=RTM.RegTypeId
        AND PPD.Ref_By_Patient*=PPD1.RegistrationNo
        AND PPD.RegistrationDate >= '01-Oct-2013'
        AND PPD.RegistrationDate <= '10-Dec-2013'
ORDER BY LM.LocationName ,
        PPD.RegistrationNo

错误

“*=”附近的语法不正确。

请指教

【问题讨论】:

  • 它伤害了我的眼睛。哎哟。
  • 你为什么使用那个操作符?你在增加 ID!
  • Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已随 ANSI-92 SQL 标准(超过 20 年前)。这包括 =**= 运算符 - 停止使用那些 RIGHT NOW 并切换到正确的 JOIN 语法,你所有的问题都会神奇地消失......

标签: sql sql-server


【解决方案1】:

*= 被用作左外连接的快捷语法,而=* 是右外连接的快捷语法。这些连接字段没有使用left outer join tablex on x.col1 = ... 语法,而是列在 where 子句中。就个人而言,我会放弃加入 where 子句。

What is this operand (*= star-equals) in SQL server 2000?

也许这是在 2012 年被删除的?尝试将数据库兼容模式改回一个版本为 9 (2005) 或 10 (2008)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-26
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2017-07-15
    相关资源
    最近更新 更多