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

    路慢慢其休远羲,吾将上下而求所
  • 相关阅读:
    【译】.NET Core 3.0 中的新变化
    【译】最大限度地降低多线程 C# 代码的复杂性
    【wif系列】C#之单例模式(Singleton Pattern)最佳实践
    【译】在C#中实现单例模式
    【译】.NET 跨平台界面框架和为什么你首先要考虑再三
    WPF自定义空心文字
    WPF捕获未处理的异常
    C# 中 SQLite 使用介绍
    C# WebService动态调用
    Java实现将中文转成拼音和ASCII码
  • 原文地址:https://www.cnblogs.com/garinzhang/p/3639478.html
Copyright © 2011-2022 走看看