代码之家  ›  专栏  ›  技术社区  ›  MAK

使用MetaDataPropertyValue筛选Azure流分析

  •  0
  • MAK  · 技术社区  · 6 年前
    SELECT  
        GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') AS prodFilter
    INTO 
        "outputstream" 
    FROM 
        "inputstream"
    

    我正在尝试获取元数据属性值以筛选数据。使用上面定义的查询,我可以获得元数据属性,但是我如何基于此过滤输入流?

    我试着用 WHERE prodfilter = 'product1 ‘但没用。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Aλeᵡ    6 年前

    如果你使用 prodFilter 这样地:

    SELECT  
        GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') AS prodFilter
    INTO outputstream
    FROM inputstream
    WHERE prodFilter = 'product1'
    

    前置过滤器 在何处尚未定义。 您应该使用原始表达式,例如:

    SELECT  
        GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') AS prodFilter
    INTO outputstream 
    FROM inputstream
    WHERE
        GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') = 'product1'
    

    或者更好的方法是在不同的步骤中过滤:

    WITH step1 AS (
        SELECT  
            GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') AS prodFilter
        FROM inputstream
    

    SELECT *
    INTO outputstream
    FROM step1
    WHERE prodFilter = 'product1'