T-SQL(4)-功能函数(芮)

SQL Server中的函数
•          字符串函数
•          日期函数
•          数学函数
•          系统函数
这些都相当于C语言中的内部函数,我们来一个一个看:
字符串函数
 
日期函数
SELECT DATEPART(day, ‘01/15/2000‘)
返回:15
日期中指定日期部分的整数形式
DATEPART
SELECT GETDATE()
返回:今天的日期
取得当前的系统日期
GETDATE
举例
描述
函数名
SELECT DATEADD(mm,4,’01/01/99’)
返回:以当前的日期格式返回05/01/99
将指定的数值添加到指定的日期部分后的日期
DATEADD
SELECT DATEDIFF(mm,‘07/01/99’,‘11/01/99’)
返回:4
两个日期之间的指定日期部分的区别
DATEDIFF
SELECT DATENAME(dw,‘01/01/2000‘)
返回:Saturday
日期中指定日期部分的字符串形式
DATENAME

数学函数
SELECT SQRT(9)
返回:3
取浮点表达式的平方根
Sqrt
SELECT ABS(-43)
返回:43
取数值表达式的绝对值
ABS
举例
描述
函数名
SELECT CEILING(43.5)
返回:44
返回大于或等于所给数字表达式的最小整数
CEILING
SELECT POWER(5,2)
返回:25
取数值表达式的幂值
POWER
SELECT ROUND(43.543,1)
返回:43.5
将数值表达式四舍五入为指定精度
ROUND
SELECT SIGN(-43)
返回:-1
对于正数返回+1,对于负数返回-1,对于0 则返回0
Sign
SELECT FLOOR(43.5)
返回:43
取小于或等于指定表达式的最大整数
FLOOR

系统函数
SELECT USER_NAME(1)
返回:从任意数据库中返回“dbo”


从给定的用户I D返回用户名
USER_NAME
SELECT CONVERT (VARCHAR (5),12345)
返回:字符串12345
用来转变数据类型
CONVERT
举例
描述
函数名
SELECT CURRENT_USER
返回:你登录的用户名
返回当前用户的名字
CURRENT_USER
SELECT DATALENGTH (‘中国A盟‘)
返回:7
返回用于指定表达式的字节数
DATALENGTH
SELECT HOST_NAME()
返回:你所登录的计算机的名字
返回当前用户所登录的计算机名字
HOST_NAME
SELECT SYSTEM_USER
返回:你当前所登录的用户名
返回当前所登录的用户名称
SYSTEM_USER

案例分析1—要求
•          某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:
    卡里面的“O和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”;
       请编写SQL语句实现以上要求;
•          数据库表名:Card;密码字段名:PassWord;

案例分析1—分析
•          这是更新语句,需要使用UPDATE语句;
•          因为牵涉到字符串的替换,需要使用到SQL Server中的函数Replace;

案例分析1—T-SQL
两行SQL语句
Update Card Set PassWord = Replace(PassWord,‘O‘,‘0‘)
Update Card Set PassWord = Replace(PassWord,‘i‘,‘1‘)
一行SQL语句
Update Card
Set        PassWord = Replace(Replace(PassWord,‘O‘,‘0‘),‘i‘,‘1‘)

案例分析2—要求
•          在数据库表中有以下字符数据,如:
       13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2

       现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排需,输出要排成这样:
       13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2

•          数据库表名:SellRecord;字段名:ListNumber;

案例分析2—分析
•          这是查询语句,需要使用SELECT语句
•          需要使用到ORDER BY进行排序,并且在ORDER BY的排序列中,也需要重新计算出排序的数字来
•          前半部分的数字,可以从先找到“-”符号的位置,然后,取其左半部分,最后再使用Convert函数将其转换为数字:
       Convert(int, Left(ListNumber, CharIndex(‘-‘, ListNumber)-1))
•          后半部分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空格,最后再使用Convert函数将其转换为数字:

案例分析2—T-SQL
Convert(int, Stuff(ListNumber,1, Charindex(‘-‘, ListNumber), ‘‘))
SELECT ListNumber
FROM    SellRecord
ORDER BY
Convert(int, Left(ListNumber, CharIndex(‘-‘, ListNumber)-1)),
Convert(int, Stuff(ListNumber,1, Charindex(‘-‘, ListNumber), ‘‘))

当然,还有其他的计算出排序列的方法,大家可以自己思考一下。
时间: 2024-08-28 22:28:49

T-SQL(4)-功能函数(芮)的相关文章

sql内置函数pivot强大的行转列功能

原文:sql内置函数pivot强大的行转列功能 语法: PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 200

SQL Server 2000 函数使用---CAST 和 CONVERT

本文来自:http://www.cnblogs.com/xh831213/category/47654.html 将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相似的功能. 语法 使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 参数 expression 是任何有效的 Microsoft® SQL

转载 sql 存储过程与函数区别

SQL Server用户自定义函数和存储过程有类似的功能,都可以创建捆绑SQL语句,存储在server中供以后使用.这样能够极大地提高工作效率,通过以下的各种做法可以减少编程所需的时间: 重复使用编程代码,减少编程开发时间. 隐藏SQL细节,把SQL繁琐的工作留给数据库开发人员,而程序开发员则集中处理高级编程语言. 维修集中化,可以在一个地方做业务上的逻辑修改,然后让这些修改自动应用到所有相关程序中. 乍看之下,用户自定义函数和存储过程的功能似乎一摸一样.但是,其实这两者之间还有一些虽然细微但是

【SQL】sql版Split函数。用于拆分字符串为单列表格

原文:[SQL]sql版Split函数.用于拆分字符串为单列表格 功能与.net版string.Split函数类似,只不过.net返回的是数组,这个返回的是一个单列表格,每个拆分出来的子串占一行.可选是否移除空格子串和重复项.市面上类似的函数不算少,但大多都是在循环中对原串进行改动,我感觉这样不好,虽然不知道sql的字符串是不是像.net的一样具有不可变性,但感觉尽量不要去动原串最好,万一sql的字串也不可变,那变一次就要产生一份,尤其是每圈循环都在变,内存消耗让人心疼,所以才有重新造个轮子的想

03微信公众平台 - 实现【天气查询】功能函数,返回一个文本字符串。

一.功能代码函数实现 private function _weather($city) { include("weather_cityId.php"); $c_name=$weather_cityId[$city]; if(!empty($c_name)){ $json=file_get_contents("http://m.weather.com.cn/data/".$c_name.".html"); $data = json_decode($

SQL Server用户自定义函数

用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统 函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE 命令来执行.在 SQL Server 中根据函数返回值形式的不同将用户自 定义函数分为三种类型:(1) 标量函数标量函数返回一个确定类型的标量值,其返回值类型为除 TEXT . NTEXT .IMAGE . CURSOR . TIMESTAMP 和 TABLE 类型外的其它数据类型.函数体语句定义在 BEGIN-END 语句内.在 RETURNS

Microsoft SQL Server 自定义函数整理大全

01.去除字符串中的html标记及标记中的内容 [叶子函数分享一]去除字符串中的html标记及标记中的内容 --1.创建函数 create function [dbo].[clearhtml] (@maco varchar(8000)) returns varchar(8000) as begin     declare @i int     while 1 = 1     begin        set @i=len(@maco)        set @maco=replace(@maco

Microsoft SQL Server 自定义函数整理大全(下)

34.字符串转成16进制函数 /**************************** 字符串转成16进制 作者:不得闲 QQ: 75492895 Email: [email protected] ****************************/ --创建函数(suiyunonghen(不得闲)) Create Function VarCharToHex(@Str Varchar(400)) returns varchar(800) as begin declare @i int,@

也来谈谈SQL SERVER 自定义函数~

在使用SQL SERVER 数据库的时候,函数大家都应该用过,简单的比如 系统聚合函数 Sum(),Max() 等等.但是一些初学者编写自定义函数的时候,经常问起什么是表值函数,什么是标量值函数. 表值函数,顾名思义函数的返回值当然是返回一个表了.就是 TABLE 类型.TABLE 类型就相当于一张存储在内存中的一张虚拟表. 表值函数有分为内联表值函数(相当于参数化的视图)和多语句表值函数,二者原理一样,功能略有不同当然写法也就略有不同. 多语句表值函数 语法模板: CREATE FUNCTIO

Python 操作文件模拟SQL语句功能

Python操作文件模拟SQL语句功能 一.需求 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 1. 可进行模糊查询,语法至少支持下面3种: 1. select name,age from staff_table where age > 22 2. select * from staff_table where dept = "IT" 3. select * from