zoukankan      html  css  js  c++  java
  • SQL Server 2008读书笔记(0):实用SQL语句

    #1:将一列的值设置另一列(相同表或者不同表)
    相同表:

    update Table1
    set Table1.Column1 = Table1.Column2 from Table1

    不同表:

    UPDATE Table1
    SET Table1.Column1 = Table2.Column2 FROM Table2
    WHERE Table1.Column3 = Table2.Column3

     #2: 综合选择分组语句:

    SELECT empid, YEAR(orderdate) AS orderyear, SUM(freight), COUNT(*) AS numorders 
    FROM Sales.Orders
    WHERE custid = 71
    GROUP BY empid, YEAR(orderdate)
    HAVING COUNT(*) > 1
    ORDER BY empid, orderyear

    #3: 选择分页数据

    USE [TableName] 
    GO
    
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE PROCEDURE [dbo].[GetDatas]
      @Name varchar(max) = NULL,
      @OrderExp varchar(20) = 'AssetNumber',
      @OrderDirection varchar(10) = 'ASC',
      @PageNum int = 1,
      @PageSize int = 10,
      @ResultCount int output
    AS
    BEGIN
        SET NOCOUNT ON
      DECLARE @tempDatas TABLE 
      ( 
          Id int,
          Name varchar(50) NULL,
          RowNumber int
      )
      DECLARE @NameLike nvarchar(50)
      DECLARE @Order nvarchar(50)
      
      SET @AssetName = NULLIF(@AssetName, '')
      SET @NameLike = '%' + @AssetName + '%'
      SET @Order = @OrderExp + @OrderDirection
    
      INSERT INTO @tempDatas (
        Id, 
        Name,
        RowNumber)
        SELECT Id, 
            Name, 
            ROW_NUMBER()OVER(ORDER BY 
              CASE WHEN @Order = 'NameDESC' THEN Name END DESC,
              CASE WHEN @Order = 'NameASC' THEN Name END ASC
              )AS RowNumber
        FROM dbo.MyObjects
        WHERE ((@Name IS NULL) OR (@Name IS NOT NULL AND dbo.MyObjects.Name like @Name))
     
      SELECT @ResultCount = COUNT(1) 
      FROM @tempDatas;
      
      SELECT * FROM @tempDatas 
      WHERE RowNumber BETWEEN ((@PageNum - 1)*@PageSize + 1) AND @PageNum*@PageSize;
    
    END
    
    GO
  • 相关阅读:
    golang版本管理工具gvm
    golang问题101
    服务器部署Jupyter Notebook
    Python 获取MySql某个表所有字段名
    Python自带HTTP文件传输服务
    log4net 配置
    GridView控件RowDataBound事件中获取列字段值的几种途径
    最简单去Button回车事件
    oracle 多条执行语句同时执行
    MERGE Into
  • 原文地址:https://www.cnblogs.com/thlzhf/p/2986679.html
Copyright © 2011-2022 走看看