SqlServer存储过程中常用函数及操作
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存储过程中常用函数及操作的更多相关文章
- LoadRunner中常用的字符串操作函数
LoadRunner中常用的字符串操作函数有: strcpy(destination_string, source_string); strc ...
- mysql存储过程及常用函数
原文:mysql存储过程及常用函数 一.函数 1.数学函数 CEIL()进一取整 SELECT CEIL(1.2);2 FLOOR()舍一取整 SELECT FLOOR(1.9);9 MOD取余数(取 ...
- 5. openCV中常用函数学习
一.前言 经过两个星期的努力,一边学习,一边写代码,初步完成了毕业论文系统的界面和一些基本功能,主要包括:1 数据的读写和显示,及相关的基本操作(放大.缩小和移动):2 样本数据的选择:3 数据归一化 ...
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
- LoadRunner中常用函数参考手册
基础篇1:LoadRunner中常用函数参考手册 常用函数列表 web_url web_submmit_form VS web_submmit_data VS web_custom_request w ...
- 【转载】Sqlserver存储过程中使用Select和Set给变量赋值
Sqlserver存储过程是时常使用到的一个数据库对象,在存储过程中会使用到Declare来定义存储过程变量,定义的存储过程变量可以通过Set或者Select等关键字方法来进行赋值操作,使用Set对存 ...
- Sqlserver 存储过程中结合事务的代码
Sqlserver 存储过程中结合事务的代码 --方式一 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ ...
- 搜索sqlserver 存储过程中的关键字
搜索sqlserver 存储过程中的关键字 select * from sys.all_sql_modules where definition like '%SP_NAME%'
- 工作中常用的QTP操作Excel函数
前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...
随机推荐
- vim简单配置(tab,行号,自动缩进)
进入到个人目录:cd - 打开vimrc文件:vim .vimrc 在文件中添加以下内容:set shiftwidth=4 #按tab键缩进4个空格set softtabstop=4 ...
- [转载]np.where()使用说明
转载自https://www.cnblogs.com/massquantity/p/8908859.html#4072620 numpy.where() 有两种用法: 1. np.where(cond ...
- 【Leetcode】Combinations
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...
- Ubuntu14上安装Mongo3.2
1. 安装 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D68FA50FEA312927 echo "deb ...
- 17.JavaMail
1.电子邮件 电子邮件是目前网络上使用最多的服务,电子邮件的应用越来越广泛正常的通信往来账号注册时,找回密码时等一般发送的邮件主要可以分解成2大部分一部分是发信人.接信人.主题等邮件标头另外一部分是邮 ...
- ubuntu14.04&matlab2015b 测试caffe的Matlab接口
Step1: 修改caffe-master中的Makefile.config 提示:可以到文件中直接“ctrl+f”,键入相应大写字母即可查找到相应位置. Step2:编译接口.如果之前编译caffe ...
- 基于webpack的vue项目路径别名
在vue的项目里,我们可以使用../这样的相对路径的方式引用不同目录的组件: import userinfo from '../../../components/userinfo.vue'; 使用.. ...
- SQL 还原或备份失败数据库变成单个用户模式无法访问
还原数据失败了,数据库变成单个用户模式,无法操作了,执行下面的语句就可以了 USE master GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @S ...
- 01-消息中间件概述和ActiveMq入门
1.mq解决的问题 系统异步处理 应用解耦 流量削峰 日志处理 消息通信 2.消息中间件的2中模型 2.1 Point-to-Point(P2P) / 点对点 / 类比:送快递 特点: + 一个消费生 ...
- Android NDK开发 Android Studio使用新的Gradle构建工具配置NDK环境(一)
本文主要讲述了如何如何在Android Studio使用新的Gradle构建工具配置NDK环境,现在把相关的步骤整理出来分享给Android程序员兄弟们,希望给他们在配置NDK环境时带来帮助. 从An ...