SQL视图格式化数据

SQL视图格式化数据,视图的另一常见用途是重新格式化检索出的数据。下面的SELECT语句在单个组合计算列中返回供应商名和位置:

    SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
            AS vend_title
    FROM Vendors
    ORDER BY vend_name;

输出结果如下:

    vend_title
    -----------------------------------------------------------
    Bear Emporium (USA)
    Bears R Us (USA)
    Doll House Inc. (USA)
    Fun and Games (England)
    Furball Inc. (USA)
    Jouets et ours (France)

下面是相同的语句,但使用了||语法(如拼接字段所述):

    SELECT RTRIM(vend_name) || ' (' || RTRIM(vend_country) || ')'
            AS vend_title
    FROM Vendors
    ORDER BY vend_name;

输出结果如下:

    vend_title
    -----------------------------------------------------------
    Bear Emporium (USA)
    Bears R Us (USA)
    Doll House Inc. (USA)
    Fun and Games (England)
    Furball Inc. (USA)
    Jouets et ours (France)

现在,假设经常需要这个格式的结果。我们不必在每次需要时执行这种拼接,而是创建一个视图,使用它即可。把此语句转换为视图,可按如下进行:

    CREATE VIEW VendorLocations AS
    SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
            AS vend_title
    FROM Vendors;

下面是使用||语法的相同语句:

    CREATE VIEW VendorLocations AS
    SELECT RTRIM(vend_name) || ' (' || RTRIM(vend_country) || ')'
            AS vend_title
    FROM Vendors;

这条语句使用与以前SELECT语句相同的查询创建视图。要检索数据,创建所有的邮件标签,可如下进行:

    SELECT * FROM VendorLocations;

输出结果如下:

    vend_title
    -----------------------------------------------------------
    Bear Emporium (USA)
    Bears R Us (USA)
    Doll House Inc. (USA)
    Fun and Games (England)
    Furball Inc. (USA)
    Jouets et ours (France)

说明:SELECT约束全部适用
前面提到,各种DBMS中用来创建视图的语法相当一致。那么,为什么会有多种创建视图的语句版本呢?因为视图只包含一个SELECT语句,而这个语句的语法必须遵循具体DBMS的所有规则和约束,所以会有多个创建视图的语句版本。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程