簡體   English   中英

SQL 子查詢混淆

[英]SQL Sub queries Confusion

據我了解,子查詢有時用於從單獨的表中檢索數據並包含到我們當前正在填充的表中。 但是,我無法理解這段代碼:

INSERT INTO ESOP_ODS.dbo.ActiveMonitoringDeviceFact (
    MonitoringDeviceID,
    DateID,
    TimeID,
    TenantID,
    ReportingDate,
    NumActiveDevices
)
SELECT
    MonitoringDeviceDim.MonitoringDeviceID,
    **(SELECT DateID FROM ESOP_ODS.dbo.DateDim WHERE DateDim.DateKey = CAST(@ReportingDate AS DATE)),
    (SELECT TimeID FROM ESOP_ODS.dbo.TimeDim WHERE TimeDim.TimeKey = @ReportingTime)**,
    TenantDim.TenantID,
    @ReportingDate,
    1

什么是粗體行的 function,為什么要使用子查詢?

這些是量子查詢。 標量子查詢返回一列最多一行。 它們可以替換 SQL 查詢中的常量 - 至少在select中, where , from having have 和order by子句。

這些查詢只查找傳遞給查詢的特定參數的dateidtimeid 它是一種基於查詢中使用的命名法將“key”值轉換為“id”值的方法。

請注意,如果標量子查詢不返回任何行,則值為NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM