zoukankan      html  css  js  c++  java
  • SQL SERVER 学习笔记

    --- 转小写  输出:abcdef
    SELECT Lower('aBCDEF');
    
    --- 转大写 输出:ABCDEF
    SELECT UPPER('ABcdef');
    
    -- 去左空格  ->'ABCDEF   '
    SELECT  LTRIM('   ABCDEF   ');
    
    -- 去右空格  ->'   ABCDEF'
    SELECT RTRIM('   ABCDEF   ');  
    
    --  从左截取字符串      ->abcde
    SELECT LEFT('abcdefg123456',5);
    
    
    --  从左截取字符串      ->23456
    SELECT RIGHT('abcdefg123456',5);
    
    --- 查询传入字符起始位置 为0
    SELECT  CHARINDEX('a','ab')
    
    
    --- 截取字符串  如: 从第三个字符开始截取两个长度,输出:cd
    SELECT  SUBSTRING('abcdefghi',3,2)
    
    --- 替换字符串  输出:A4CDEFG4AC
    SELECT REPLACE('ABCDEFGBAC','B',4);
    
    
    --- 以指定的次数重复字符串值   输出:ABAB
    SELECT REPLICATE('AB', 2)
    
    ---  返回字符串值的逆序  输出 :FEDCBA
    SELECT  REVERSE ('ABCDEF')
    
    --- 数据类型转换  输出:13
    SELECT   CAST('3' as int)+10
    
    
    ---- 时间:----
    -- 获取现在时间  输出:2013-03-19 16:17:27.437
    select GETDATE();
    
    --- 获取日期
    select day(GETDATE());
    
    
    --- 获取年
    select year(GETDATE());
    
    --- 获取月份
    select MONTH(GETDATE());
    
    ---  添加时间   YEAR,DAY,HOUR,MONTH
    -- 添加时间:输出 2023-03-19 16:20:06.763
    select dateadd(YEAR,10,GETDATE());
    
    
    --- DATENAME (<datepart>, <date>) 
    --  以字符串的形式返回日期的指定部分此部分。由datepart 来指定。
    SELECT DATENAME(year,GETDATE());
    
    ---DATEPART (<datepart>, <date>)
    ---以整数值的形式返回日期的指定部分。此部分由datepart 来指定。
    SELECT DATEPART(yy, GETDATE());   -- 相当于 year(getdate())
    SELECT DATEPART(mm, GETDATE());   -- 相当于 month(getdate())
    SELECT DATEPART(dd, GETDATE());   -- 相当于 day(getdate())
    SELECT DATEPART(hh, GETDATE());
    
    
    ---- 时间格式化函数
    Select CONVERT(varchar(100), GETDATE(), 20);   --2013-03-19 16:34:50
    Select CONVERT(varchar(100), GETDATE(), 23);   --2013-03-19
    Select CONVERT(varchar(100), GETDATE(), 8);    --16:35:54
    
    --- DateDIFF  比较时间   输出:6
    SELECT DATEDIFF(hh, '2013-03-19 12:34:50', '2013-03-19 18:34:50')
    
    
    --- 常用 统计函数
    /*
    AVG ( ) -返回的平均价值 
    count( ) -返回的行数 
    first( ) -返回第一个值 
    last( ) -返回最后一个值 
    max( ) -返回的最大价值 
    min( ) -返回最小的价值 
    total( ) -返回的总和
    */
    
    --- row_number
    select row_number() over(order by field1) as row_number,* from t_table

     行转列:

    SELECT [DAY] ,sum( CASE  result WHEN '' then 1 else  0 end) as 胜,sum( CASE  result  WHEN '' then 1 else  0 end ) asfrom  test GROUP BY  [day]

    游标:

    事务

    BEGIN TRAN
      update Blog set name=name+'Rhythmk'  where Id='04C65E2C-E604-4295-9F20-0004B72DE0B4'
      select  CAST('107a'  as   INT)
    
    if  @@error<>0
      
       BEGIN
       SELECT 'A'
       ROLLBACK  TRAN
      END
    ELSE 
       BEGIN 
     SELECT  'B'
         COMMIT  TRAN  
    END

     第二种写法

    BEGIN  TRAN 
         UPDATE BlogCate   SET name = name + 'Rhythmk'  WHERE   Id = '04C65E2C-E604-4295-9F20-0004B72DE0B4'
         SELECT  CAST ('107' AS INT)
        BEGIN  try 
         SELECT  'B' COMMIT TRAN
      END try
      BEGIN     catch
        SELECT'A' ROLLBACK TRAN
      END catch

    不使用游标 循环执行此处过程:

      可以先生成临时表,然后循环取数据

    ----  不使用游标,循环执行存储过程
    DECLARE  @ItemCount INT,@GUID UNIQUEIDENTIFIER
    SET @ItemCount=0
    SELECT @ItemCount=COUNT(*)  FROM  dbo.data_dict
    SELECT TOP 1 @GUID=GUID  FROM  dbo.data_dict
    WHILE @ItemCount>0
    BEGIN
      DELETE FROM data_dict WHERE GUID= @GUID
      -- 执行存储过程
      EXEC PROC_INSERT_A  1
      SELECT TOP 1 @GUID=GUID  FROM  dbo.data_dict
      SELECT @ItemCount=COUNT(*)  FROM  dbo.data_dict
    END
  • 相关阅读:
    奇异值分解SVD
    Google Draco点云压缩
    C++计时函数
    NDT正态分布变换配准
    点云配准 Registration
    图像的距
    镜头基础
    道格拉斯-普克算法
    霍夫变换
    opencv基础
  • 原文地址:https://www.cnblogs.com/rhythmK/p/2969523.html
Copyright © 2011-2022 走看看