SQL Server基本函数
1. 字符串函数
1.1 datalength( char_expr ) ,返回表达式的字节数,不包含尾随空格
返回类型:如果 expression 的数据类型为 varchar(max)、nvarchar(max) 或 varbinary(max) 数据类型,则返回 bigint;否则返回 int。null的datalength的结果是null.
1.2 len( char_expr ),返回表达式的字符数,不包含尾随空格
1.3 substring( char_expr, start, length ),在expression中取start位置开始length长度的字符串。字符串下标从1开始。
1.4 right( char_expr,int_expr ),返回表达式从起始位置(从右端开始)到指定字符位置(从右端开始计数)的部分;对比区分left()
1.5 isnull(check_expr,replace_value),如果check_expr为空,返回replaced的值,否则返回check_expr
1.6 upper(char_expr) 转为大写;反之lower(char_expr)转为小写
1.7 space(int_expr) 生成int_expr个空格
1.8 replicate(char_expr,int_expr)复制字符串int_expr次
1.9 reverse(char_expr) 反转字符串
1.10 stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从start开始的length个字符用char_expr2代替。start为负或超出char_expr1长度,则返回空字符串;length为负,返回空字符串
1.11 ltrim(char_expr)取掉左侧空格;反之rtrim(char_expr) 取掉右侧空格
1.12 ascii(char) 、char(ascii) 两函数对应,取ascii码,根据 ascii 码取字符
1.13 charindex(char_expr1,char_expr2[,start_location]),在char_expr2中找char_expr1的起始位置,如果没有给定start_location、或者给定值为负数或零,那么搜索将会开始于char_expr2的起始位置。
1.14 patindex("%pattern%",char_expr) 返回指定模式的起始位置,否则为0;pattern为一个文字字符串,可以使用通配符;但是pattern前后必须使用字符'%'(查找第一个或最后一个字符时除外)。示例:搜索其名称包含单词"apple"的产品的列表:select productName,patindex('%apple%',productName) from products
2. 数学函数
2.1 abs(numeric_expr) 求绝对值
2.2 ceiling(numeric_expr) 取大于等于指定值的最小整数
2.3 exp(float_expr) 取指数
2.4 floor(numeric_expr) 小于等于指定值得最大整数
2.5 pi() 3.1415926.........
2.6 power(numeric_expr,power) 返回power次方
2.7 rand([int_expr]) 随机数产生器
2.8 round(numeric_expr,int_expr) 按int_expr规定的精度四舍五入
2.9 sign(int_expr) 根据正数,0,负数,,返回+1,0,-1
2.10 sqrt(float_expr) 平方根
2.11 isnumeric(expr),如果输入表达式的计算值为有效的整数、浮点数、money或decimal类型时,返回1(指示可将expr至少转换为上述数值类型中的一种。),否则返回0。
3. 日期函数
3.1 getdate(),返回当前日期
3.2 datename(datepart, date_expr),返回指定日期指定日期部分的字符串
3.3 datepart(datepart, date_expr),返回指定日期指定日期部分的整数
3.4 datediff(datepart, startdate, enddate),日期差;提前五分钟提醒功能:select * from tbName where datediff('minute',col_date,getdate())>5
3.5 dateadd(datepart, number, date_expr),返回当前日期加上number之后的日期
3.6 convert(),可以日期转换
3.7 year(date_expr),获取年份;month()、day()
说明,上面函数中datepart的 写法,取值,意义 如下(写year、month、day等也是可以的):
yy 1753-9999 年份
mm 1-12 月
dy 1-366 日
dd 1-31 日
wk 1-54 周
dw 1-7 周几
hh 0-23 小时
mi 0-59 分钟
ss 0-59 秒
ms 0-999 毫秒
qq 1-4 刻
4.聚合函数
4.1 avg(),返回一组数值中所有非空数值的平均值
4.2 count(),返回一个列内所有非空值的个数。count(*)会忽略null值
4.3 min(),返回一个列范围内的最小非空值;max()与之相反。这两个函数可以用于大多数的数据类型,返回的值根据对不同数据类型的排序规则而定。如对于字符类型的值,结果以每个字符的ASCII值为顺序从左到右排序
4.4 sum(),返回一个列范围内所有非空值的总和
5. 系统函数
5.1 suser_name() 用户登录名
5.2 user_name() 用户在数据库中的名字
5.3 user 用户在数据库中的名字
5.4 show_role() 对当前用户起作用的规则
5.5 db_name() 数据库名
5.6 object_name(obj_id) 数据库对象名
5.7 col_name(obj_id,col_id) 列名
5.8 col_length(objname,colname) 列长度
5.9 valid_name(char_expr) 是否是有效标识符
6. 类型转换函数
6.1 cast()
6.2 convert()
6.3 str(float_expr [,length [,decimal] ] );返回由数字数据转换来的字符数据。length,总长度,包括小数点、符号、数字以及空格(默认值为10);decimal,小数点后的位数,decimal必须小于或等于16。超出则截断,只保留16位。
print str(12,3,0) --'12',length大于表达式的长度
print str(123,3,0) --'123',length等于表达式的长度
print str(1234,3,0) --'***',length小于表达式的长度
print str('',2,0) --'13',表达式为字符串类型也可以执行该函数 ★
print str(123.456) --' 123',默认长度为10,只保留整数部分
6.4 char(int_expr);将int ASCII代码转换为字符;int_expr 介于0-255之间的整数,否则返回null值
char(9) --制表符
char(10) --换行符
char(13) --回车符
--使用char(13)在不同的行上输出姓名、电子邮件地址和电话号码,并以文本方式返回结果
select username,+char(13)+EmailAddress+char(13)+Phone
from tb_user where id=1
--结果如下:
username
------------------------ -------------------------
张三
123456789@163.com
7.其他标量函数
标量函数只对一个数值进行操作,并返回单个数值,标量函数分为以下几类:
系统函数、日期/时间函数、字符串函数、数学函数、图像和文本函数、安全函数、游标函数、数据元函数;
select '当前数据库名称'=db_name(),
'当前数据库标识号'=db_id()
8. 嵌套函数(将一个函数的返回值传递给另一个函数,这称为嵌套函数调用,如下:)
select convert(varchar(20),getdate(),101)
SQL Server基本函数的更多相关文章
- Sql server 大全
一.基础 .说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice ...
- sql server语句
一.基础1.说明:创建数据库CREATE DATABASE 数据库名2.说明:删除数据库drop database 数据库名3.说明:备份sql server--- 创建 备份数据的 deviceUS ...
- 常用SQL语句大全(SQL Server)
一.基础 查看数据库状态 select state_desc from sys.databases where name='dbname' -- dbname数据库名 1.说明:创建数据 ...
- 15Microsoft SQL Server 数据库维护
Microsoft SQL Server 数据库维护 2.6.1数据库联机与脱机 --联机:该状态为数据库正常状态,也就是我们常看到的数据库的状态,该状态下的数据库处于可操作状态,可以对数据库进行任何 ...
- sql语句复习(基础-提升-技巧-经典数据开发案例-sql server配置)
1 基础 1.说明:创建数据库 CREATE DATABASE database-name charset=utf8 2.说明:删除数据库 drop database dbname 3.说明:备份sq ...
- SQL Server经典sql语句大全(转)
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- SQL SERVER 语法汇总
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- SQL Server 语法大全
SQL语句参考,包含Access.MySQL 以及 SQL Server 基础 创建数据库 CREATE DATABASE database-name 删除数据库 drop database dbna ...
- sql Server 的基本函数
--聚合函数 use pubs go select avg(distinct搜索 price) --算平均数 from titles where type='business' go use pubs ...
随机推荐
- 通过Trainingkit对Azure有一个初步的了解
学习Azure有一个非常不错的资料库Azure training kit. 这里面包含了很多Azure团队编写的实例代码,以及为初学Azure的开发人员准备的新手教学课程. 开发人员可以从http:/ ...
- [转] ubuntu开启SSH服务
点击阅读原文 SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo ...
- VS2013: upgrading a Windows Phone 7/8 and Windows 8 apps(转)
VS2013: upgrading a Windows Phone 7/8 and Windows 8 apps September 17, 2013Windows 8, Windows PhoneJ ...
- linux 如何开机自动运行sh脚本
vi /etc/rc.d/rc.local #自动启动oracleecho 502 >/proc/sys/vm/hugetlb_shm_group su - oracle -c 'sh /dat ...
- 关于Java项目打包
可以选择以下几种办法: 一.使用Eclipse,右键项目导出jar. 二.使用Eclipse,右键项目导出runnable jar. 三.使用Eclipse 插件fat jar,导出可执行的jar包. ...
- 手势抽取过程&代码复用
public abstract class BaseSetupActivity extends Activity { private GestureDetector gestureDetector; ...
- http://stackoverflow.com/questions/6065169/requestanimationframe-with-this-keyword
Observe that you call obj.draw as : <button onclick="obj.draw() The first time obj.draw is c ...
- Spring Boot Admin 的使用 2
http://blog.csdn.net/kinginblue/article/details/52132113 ******************************************* ...
- 再谈 Unlix (Linux, AIX, HPUX) 上 Java 的 java.lang.OutOfMemoryError: unable to create new native thread
首先很容易排除是 程序问题 内存用了很少,64 位 Java也没有内存限制,线程也不多,-Xss 堆栈也没人会配置很大. 那么肯定是 limit 不足引起 配置 ulimit 就可以了,问题看起来很简 ...
- AlwaysOn与数据库镜像端点问题
今天在搭建一个测试环境的时候发现一个问题,我将AlwaysOn环境中某节点上的某个非可用性组里的数据库想实时备份到另外一台服务器上,因此我找了一个没有加域的工作组的服务器,与AlwaysOn主节点去搭 ...