【问题标题】:Intersystems Cache coding query系统间缓存编码查询
【发布时间】:2014-08-04 08:13:18
【问题描述】:
SELECT Distinct visitid As Visit_ID, 
       AreaId->FacilityID As Facility_ID, 
       visitid-PatientSecondaryNumber As Patient_MRN, 
       visitid->PatientName As Patient_Name, 
       visitid-statustext As visit_Status, 
       visitid->LastVisitTypeID->shortname As visit_Type,
       visitid-LastVisitActivationTime As Last_Visit_Activation,
       (SELECT VisitConversionID->VisitTypeID-shortname 
        FROM qcpr_arf_OC.VisitActivationTime 
        WHERE visitid = qcpr_arf_RG.AreaBedHistoryEventTime.visitid AND 
              VisitConversionID->VisitTypeID-shortname LIKE 'Emergency%' ) AS Last_Visit FROM qcpr_arf_rg.AreaBed INNER JOIN qcpr_arf_RG.AreaBedHistoryEventTime ON     
       qcpr_arf_rg.AreaBed.AreaBedID = qcpr_arf_RG.AreaBedHistoryEventTime.AreaBedID 
WHERE AreaBedHistoryEventTimeSubID LIKE 'Ç910%' AND visitid <> ''

您好,上面的查询已被以前的员工保留,我正在尝试弄清楚“->”是什么意思,谁能帮帮我。

【问题讨论】:

    标签: sql class hierarchy intersystems-cache intersystems


    【解决方案1】:

    扩展@Ben 的答案,并在此线程中包含更多信息,而不仅仅是他提供的外部链接。

    -> 语法是一种缓存 SQL 简写,在属性是对另一个表的引用的情况下表示隐式 LEFT OUTER JOIN。

    例如,您的 SQL 查询在 SELECT 子句中包含以下列: AreaId->FacilityID 作为 Facility_ID 此表达式等效于使用ON {table.ROWID} = AreaID 与 AreaId 引用的表进行 LEFT OUTER JOIN,如果存在此类 AreaId,则返回该 FacilityID,否则返回 NULL。

    乍一看,语法可能没有多大意义,但它可以减少查询中的 SQL 量。也就是说,如果您明确地在 visitid 上进行 JOIN,则此查询可能更容易理解。

    我包含@Ben 指向 InterSystems 文档的链接:http://docs.intersystems.com/cache20141/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_specialfeatures#GSQL_specialfeatures_impjoin 文档的重点从更面向对象的角度描述了该功能的行为,并提供了一些基本的查询重写来说明该功能。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      相关资源
      最近更新 更多