美文网首页
标量子查询

标量子查询

作者: susupp | 来源:发表于2018-07-23 15:31 被阅读0次

    标量子查询有一个特殊的限制,那就是必须而且只能返回 1 行 1列的结果,也就是返回表中某一行的某一列的值,例如“10”或者“东京都” 这样的值。
    标量子查询就是返回单一值的子查询。
    由于返回的是单一的值,因此标量子查询的返回值可以用在 = 或者 <> 这样需要单一值的比较运算符之中。这也正是标量子查询的优势所在。

    e.g.

    SELECT
        product_id,
        product_name,
        sale_price
    FROM
        Product
    WHERE
        sale_price > (
            SELECT
                AVG(sale_price)
            FROM
                Product
        );
    

    其实这里的子查询有点多余,因为是query的同一张表,标量子查询在查询的是另外一张表时作用更大。

    SELECT
        product_id,
        product_name,
        sale_price
    FROM
        Product
    WHERE
        sale_price > AVG(sale_price);
    
    在HAVING字句中也可使用标量子查询
    SELECT
        product_type,
        AVG(sale_price)
    FROM
        product
    GROUP BY
        product_type
    HAVING
        AVG(sale_price) > (SELECT AVG(sale_price) FROM price);
    

    相关文章

      网友评论

          本文标题:标量子查询

          本文链接:https://www.haomeiwen.com/subject/vmrjmftx.html