zoukankan      html  css  js  c++  java
  • SQL SERVER 视图

    视图

    SET NOCOUNT ON;

    SET Northwind;

    GO

    IF OBJECT_ID('dbo.ViewName') IS NOT NULL

        DROP VIEW dbo.ViewName;

    GO

    CREATE VIEW dbo.Viewname

    AS

    SELECT * FROM customer AS C

    WHERE EXISTS

        (SELECT * FROM dbo.Orders AS O

         WHERE O.CustomerID = C.Customerid);

    GO

    **************************我是分割线**************************

    IF OBJECT_ID('abo.VSign') IS NOT NULL

        DROP VIEW ado.VSign;

    GO

        CREATE VIEW ado.VSign

    AS

        SELECT mnth, qty, SIGN((S1.qty-(SELECT TOP 1 qty FROM ado.Sales AS S2

                                                             WHERE S2.mnth < S1.mnth ORDER BY S2.mnth DESC))) AS sgn

        FROM ado.Sales AS S1

    GO

    ************************** 我是分割线**************************

    刷新视图

    EXEC sp_refreshview 'dbo.V1';

    SELECT NEXEC sp_refreshview QUOTENAME(VIEW_NAME, '');

    SELECT NEXEC sp_refreshview QUOTENAME(VIEW_NAME, '"') AS cmd

    FROM(SELECT QUOTENAME(TABLE_SCHEMA) N, QUOTENAME(TABLE_NAME) AS VIEW_NAME

              FROM INFORMATION_SCHEMA, VIEWS) AS V

    WHERE OBJECT PROPERTY(OBJECT_ID(VIEW_NAME), 'IsSchemaBound') = 0;


    视图中的ORDER BY(必须与TOP和FORXML一起使用)

    注:不要依赖于视图的ORDER BY(2000可用,2005不可用)

    EXISTS中的*可以用,只起统计作用。

    SQLSERVER2005支持CTE,使用模块化方法开发。

    ************************** 我是分割线**************************

    ALTER VIEW dbo.Vtrends

    AS

    WITH CsalesRN AS

    (SELECT mnth, qty, ROW_NUMBER() OVER(ORDER BY mnth) AS RN

     FROM dbo.sales),

    CSign AS

    (SELECT Cur.mnth, Cur.qty, SIGN(Cur.qty - Prv.qty) AS Sign

     FROM CsalesRN AS Cur

     LEFT OUTER JOIN CsalesRN AS Prv ON Cur.rn = Prv.rn + 1),

    CGrp AS

    (SELECT mnth, sgn, DATEADD(month, ROW_NUMBER() OVER(PARTITION BY sign ORDER BY mnth), mnth) AS grp

    FROM CSgn),

    SELECT CONVERT(VARCHAR(6), MIN(mnth), 112) AS start

                 CONVERT(VARCHAR(6), MIN(mnth), 112) AS end
                 CASE Sign

                         WHEN -1 THEN 'down'

                         WHEN 0 THEN 'same'

                         WHEN 1 THEN 'up'

                         ELSE 'unknown'

                 END AS trend

    FROM CGrp

    GROUP BY sgn, grp;

    GO

    路慢慢其休远羲,吾将上下而求所
  • 相关阅读:
    单点登录的实现原理
    Entity Framework添加记录时获取自增ID值
    linq to entity查询,日期格式化
    Linq之GroupBy用法
    IIS HTTPS CA
    CallContext和多线程
    windows平台 culture name 详细列表
    如何在WCF中集成unity
    .NET MVC 依赖注入 来龙去脉
    apache虚拟主机安装注意事项
  • 原文地址:https://www.cnblogs.com/garinzhang/p/3639478.html
Copyright © 2011-2022 走看看