1、case语句

  • 用于选择语句    
SELECT   ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
  • 用于update操作
UPDATE HumanResources.Employee
SET VacationHours =
( CASE
WHEN ((VacationHours - 10.00) < 0) THEN VacationHours + 40
ELSE (VacationHours + 20.00)
END
)
OUTPUT Deleted.BusinessEntityID, Deleted.VacationHours AS BeforeValue,
Inserted.VacationHours AS AfterValue
WHERE SalariedFlag = 0
  • 用户于变量赋值
    SET @ContactType =
CASE
-- Check for employee
WHEN EXISTS(SELECT * FROM HumanResources.Employee AS e
WHERE e.BusinessEntityID = @BusinessEntityID)
THEN 'Employee' -- Check for vendor
WHEN EXISTS(SELECT * FROM Person.BusinessEntityContact AS bec
WHERE bec.BusinessEntityID = @BusinessEntityID)
THEN 'Vendor' -- Check for store
WHEN EXISTS(SELECT * FROM Purchasing.Vendor AS v
WHERE v.BusinessEntityID = @BusinessEntityID)
THEN 'Store Contact' -- Check for individual consumer
WHEN EXISTS(SELECT * FROM Sales.Customer AS c
WHERE c.PersonID = @BusinessEntityID)
THEN 'Consumer'
END;
  • 项目实例
--根据类型,判断分配操作  构造操作日志表描述
set @tempopdes=case @servertype when '' then '分配客户'
when '' then '分配账号'
when '' then '分配账号'
when '' then '分配客户'
when '' then '分配客户'
when '' then '分配客户'
when '' then '分配客户'
else ''
end

2、cast和convert函数

CAST ( expression AS data_type [ ( length ) ] )
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
  • CAST

  主要在字符串拼接时转换表达式类型(expression)类型,常用把int或其他数值类型转换为varchar类型。

    CAST示例:  

SELECT DISTINCT CAST(p.Name AS char(10)) AS Name, s.UnitPrice
FROM Sales.SalesOrderDetail s JOIN Production.Product p on s.ProductID = p.ProductID
WHERE Name LIKE 'Long-Sleeve Logo Jersey, M';
  • CONVERT

  CONVERT比CAST能够转换的类型更多,更精细,经常使用是时间转换操作

  CONVERT示例:

 CONVERT(nvarchar(30), GETDATE(), 126)

  时间格式参考SQLServer联机文档

3、REVERSE反转函数

REVERSE函数操作表达式必须为字符类型或者可隐式转换为字符类型  

declare @ids varchar(200)
set @ids='中国,2你2,34,56'
select @ids
Select REVERSE(@ids)

4、CHARINDEX函数

CHARINDEX ( expression1 ,expression2 [ , start_location ] )

在expression2中从[start_location](未设置或者为负数时从0开始)开始查找expression1的位置信息,找到后立刻返回位置的值。开始位置计数为1
DECLARE @document varchar(64)

SELECT @document = 'bicycle Reflectors are vital safety' +
' bicycle components of your bicycle.'
SELECT CHARINDEX('bicycle', @document)
GO

5、其他函数
min 最小值
max 最大值
len 获得字符串长度

6、全局变量@@ROWCOUNT

  用于获得最近一次操作受影响的行数信息。

7、exec

  • 执行拼接语句  
 EXECUTE ('ALTER INDEX ALL ON ' + @schemaname + '.' + @tablename + ' REBUILD;');
  • 调用存储过程

  在exec sp_executesql @sql中变量 @sql必须声名为nvarchar类型

set @sql='select @a=SUM(mi_receivermoney) from t_money_receive where  mr_id in ('+@mr_ids+')'
exec sp_executesql @sql,N'@a decimal(18,2) output',@receivetotalmoney output

8、Try/Catch使用

  • begin try开始 end try 结束try。
  • begin catch 开始捕获,end catch 结束捕获。
  • 常用函数:   
select ERROR_NUMBER() --实际错误行号
select ERROR_SEVERITY() --错误级别
select ERROR_STATE() --表明错误发生的位置
select ERROR_LINE() --错误所在行号
select ERROR_MESSAGE() --错误消息
select ERROR_PROCEDURE() --导致错误的存储过程名称,嵌套时使用较方便

  使用try/Catch可以方便确定批处理或者存储过程中错误信息

参考资料:

  SQLServer联机文档

SqlServer存储过程中常用函数及操作的更多相关文章

  1. LoadRunner中常用的字符串操作函数

    LoadRunner中常用的字符串操作函数有:                strcpy(destination_string, source_string);               strc ...

  2. mysql存储过程及常用函数

    原文:mysql存储过程及常用函数 一.函数 1.数学函数 CEIL()进一取整 SELECT CEIL(1.2);2 FLOOR()舍一取整 SELECT FLOOR(1.9);9 MOD取余数(取 ...

  3. 5. openCV中常用函数学习

    一.前言 经过两个星期的努力,一边学习,一边写代码,初步完成了毕业论文系统的界面和一些基本功能,主要包括:1 数据的读写和显示,及相关的基本操作(放大.缩小和移动):2 样本数据的选择:3 数据归一化 ...

  4. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

  5. LoadRunner中常用函数参考手册

    基础篇1:LoadRunner中常用函数参考手册 常用函数列表 web_url web_submmit_form VS web_submmit_data VS web_custom_request w ...

  6. 【转载】Sqlserver存储过程中使用Select和Set给变量赋值

    Sqlserver存储过程是时常使用到的一个数据库对象,在存储过程中会使用到Declare来定义存储过程变量,定义的存储过程变量可以通过Set或者Select等关键字方法来进行赋值操作,使用Set对存 ...

  7. Sqlserver 存储过程中结合事务的代码

    Sqlserver 存储过程中结合事务的代码  --方式一 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ ...

  8. 搜索sqlserver 存储过程中的关键字

    搜索sqlserver 存储过程中的关键字 select * from sys.all_sql_modules where definition like '%SP_NAME%'

  9. 工作中常用的QTP操作Excel函数

    前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...

随机推荐

  1. QueryTask,FindTask,IdentifyTask三种查询的区别

    1:QueryTask是一个进行空间和属性查询的功能类,它可以在某个地图服务的某个子图层内进行查询,顺便需要提一下的是,QueryTask进行查询的地图服务并不必项加载到Map中进行显示.QueryT ...

  2. Windows服务注意!

    安装不成功 报错,或者安装成功 不运行 ,要把引用的dll文件 放到obj \debug文件夹下

  3. 9.path Sum III(路径和 III)

    Level:   Easy 题目描述: You are given a binary tree in which each node contains an integer value. Find t ...

  4. CRF++使用步骤

    1.将CRF++文件的压缩包解压后添加到java的工程目录下 2.使用前必须生成train.data和test.data 文件并放到crf_learn.exe的同级目录下 3.cmd进入目标位置,其中 ...

  5. windows_study_2

    描述:如何确定像%ProgramFiles%这样格式的目录的具体位置? 解决:运行——cmd——echo %ProgramFiles%——回车——界面就显示出目录位置了.

  6. day25 网络编程之socket sc架构

    1.  为什么要学习socket? socket就是网络通信的工具,任何一门语言都有socket,他不是任何一个语言的专有名词,而是大家通过自己的程序与其他电脑进行网络通信的时候都用它. 2.  客户 ...

  7. linux输入输出及vim管理

    一.理解系统的输入输出 输入输出系统是计算机重要组成部分,是沟通计算机与外界的桥梁. 二.管理输入输出的符号 1.输出重定向 >                       ##重定向正确输出 ...

  8. CAS 5.X 安装

    官方文档: https://apereo.github.io/cas/5.1.x/index.html 几个基本概念 CAS Server: SSO服务器端 CAS Client : SSO客户端,内 ...

  9. springBoot学习资料

    转载:http://www.importnew.com/29363.html 官网搭建springBoot项目:https://www.cnblogs.com/lcplcpjava/p/7406253 ...

  10. Win10家庭版组策略gpedit.msc的问题

    大家都认为,Windows家庭版中并不包含组策略,其实不然,它是有相关文件的,只是不让你使用而已.那么我们让系统允许你使用就好了.首先你需要在桌面上新建一个txt文本文档.然后将以下代码复制到这个新建 ...