SQL学习之T-SQL编程之函数

在这里,介绍T-SQL的函数,比如说,数学函数、字符串函数、转换函数、日期函数以及自定义函数

1、数学函数:

函数名 函数作用
abs 计算绝对值 1
rand 获取0-1随机数 2
round 四舍五入保留小数位 3
square 平方运算 4
power 幂运算 5
sqrt 平方根运算 6
pi 圆周率 7
ceiling 向上取整 8
floor 向下取整 9

ceiling(numeric_expression)

返回大于或等于所给数字表达式的最小整数(向上取整)

floor(numeric_expression)

返回小于或等于所给数字表达式的最大整数(向下取整)

round(numeric_expression , length)

将给定的数据四舍五入到给定的长度

PI()

常量3.14159265358979

rand([ seed ])

返回0到1之间的随机float值

2、字符串函数:

str 转换浮点数字为字符串
left 截取左边字符串
right 截取右边字符串
space 生成空格字符串
lower/upper 转换为小/大写字符串
reverse 反序字符串
len 获取字符串长度
replicate 重复生成字符串
rtrim 清除右边空格
substring
截取字符串

ltrim(char_expr)

删字符串前面的空格

rtrim(char_expr)

删字符串后面的空格

left(char_expr , integer_expr)

返回字符串中从左边开始指定个数的字符

right(char_expr , integer_expr)

返回字符串中从右边开始指定个数的字符

substring(expr , start , length)

返回指定表达式中从start位置开始长度位length的部分

3、日期函数:

getdate 获取当前日期
year 获取年份
month 获取月份
day 获取天数
datepart 获取任意时间值
datename 获取任意时间字符
dateadd 日期加法
datediff 日期减法
isdate 是否为日期数据

4、转换函数:

利用cast函数可以将某一个数据类型强制转换为另一种数据类型

cast(expression AS data_type)

convert函数允许用户把表达式从一种数据类型转换为另一种数据类型,并且还在日期的不同显示格式之间进行转换。

convert(data_type[(length)],expression[,style])

style参数,提供了各种日期显示格式,(此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到

5、自定义函数:

(1)创建用户自定义函数的语法形式如下:

create function   函数名  (形式参数名称 AS 数据类型)

returns        返回数据类型

begin   

函数内容

return         表达式

end


(2)调用用户自定义函数的基本语法:

变量 = 用户名.函数名(实际参数列表)

(3)流程控制语句:

使用T-SQL语句编程的时候,常常要利用各种流程控制语句进行顺序、分支控制转移、循环等操作。T-SQL提供了一组流程控制语句,包括条件控制语句、无条件控制语句、循环语句和返回状态值的语句

定义语句块:

begin......end是用来指定一个语句块,凡是在begin与end之间的程序都属于同一个流程控制,通常都是与if...else或while等一起使用。在实际运用中,begin和end必须成对出现。如果begin...end中间只有一行程序,则可以省略begin与end

if else语句:

语法格式:

  if 布尔表达式 

    T-SQL语句|语句块

  else

      if 布尔表达式 

        T-SQL语句|语句块

在if语句中,要求只能有一条语句;用begin...end可将多条语句视做逻辑上的一条语句;if和else后面的子句都允许嵌套,且嵌套层次不受限制

if exists语句:

use student

if exists

(

select *

from student

where SNO=‘0611101‘

)

print  ‘该学生存在‘

else

print ‘该学生不存在‘

时间: 2024-12-20 16:01:44

SQL学习之T-SQL编程之函数的相关文章

sql 学习之 group by 及 聚合函数

1.在使用 GROUP BY 子句时,Select列表中的所有列必须是聚合列(SUM,MIN/MAX,AVG等)或是GROUP BY 子句中包括的列.同样,如果在SELECT 列表中使用聚合列,SELECT列表必须只包括聚合列,否则必须有一个GROUP BY 子句.例如: select customerid,salespersonid,count(*) from sales.salesorderheader where customerid <= 11010 group by customeri

SQL学习之数据列去空格函数

1.LTRIM()---去掉列值左边的空格  如下代码: select * from dbo.course where tno='t003' and cno='c0013' 我们发现这条行数据的cname列值最左侧存在一个空格,为了数据的准确性,我们现在需要去掉空格,下面是解决代码: select LTRIM(cname),cno,tno from dbo.course where tno='t003' and cno='c0013' 2.RTRIM()---去掉列值右边的空格 ---作用和LT

SQL学习笔记----更改SQL默认的端口号

1.SQLServer配置管理器----SQLServer网络配置----MSSQLSERVER的协议---TCP/IP(已启用)---IP地址 清空素有的IP,在IPALL下更改默认的端口: 2.  cmd命令,运行 cliconfg.exe,  常规--->按顺序启用协议--->TCP/IP--->属性---->端口    改默认端口 3,通过 telnet命令,检测端口是否开放 4,连接数据库,数据库格式为     IP地址,端口号\实例名称

SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数

原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之前开发的系统要么因为历史原因用的是SQL2000要么根本用不着在SQL Server中启用CLR,所以一直没有尝试.最近因为项目的原因,在这方面做了一个调研,现在在这里分享一下心得. 首先要说明的是要在SQL Server中启用CLR必须是在SQL Server2005及以上版本,其次在默认情况下是

SQL学习之使用常用函数处理数据

一.在介绍使用函数处理数据前,先说下使用DBMS(数据库管理系统)处理数据所带来的问题! 1.与几乎所有的DBMS都同等的支持SQL语句(如SELECT)不同,每一个DBMS都有特定的函数,事实上,只有少数几个函数被所有主要的DBMS等同的支持. 比如,像提取字符串的组成部分,ACESS使用MID();DB2.Oracle.Postgre和SQLite使用SUBSTR(),而MySQL和SQL SERVER使用SUBSTRING(); 比如,数据类型的转换,Access和Oracle使用多个函数

ORACLE学习之PL/SQL编程——本地动态SQL

目录 读前注意与概述 动态SQL简介 使用EXCUTE IMMEDIATE语句 处理DDL和DCL语句 处理DML语句 处理单行查询 处理多行查询 在动态SQL中使用批量绑定 读前注意与概述 当编写PL/SQL块时,静态SQL语句只能完成一些固定任务.为了使得PL/SQL块可以灵活的处理SQL语句,需要使用动态SQL.动态SQL包括本地动态SQL和DBMS_SQL动态SQL两种实现方法,其中本地动态SQL只适用于oracle服务器端,而DBMS_SQL动态SQL不仅适用于oracle服务器端,而

SQL Server之 (二) SQL语句 模糊查询 空值处理 聚合函数

(二) SQL语句  模糊查询  空值处理  聚合函数 自己学习笔记,转载请注明出处,谢谢!---酸菜 SQL :结构化查询语言(Structured Query Language),关系数据库管理系统的标准语言. Sybase与Mircosoft对标准SQL做了扩展:T-SQL (Transact-SQL); 注:①SQL对大小写的敏感取决于排序规则,一般不敏感; ②SQL对单引号的转义,用两个单引号来表示一个单引号; ③SQL执行顺序: 1→2→3→4 select  * ---------

Oracle之PL/SQL学习笔记

自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家批评指正. PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言. PL---Procedural Language. SQL—Structure QueryLanguage.PL/SQL包括过程化语句和SQL语句     PL/SQL的单位:块. 一个块中可以嵌套

TERADATA SQL学习随笔&lt;一&gt;

最近在TERADATA环境学习SQL.在这里记录一下学习中查过的知识点,作为备案. 目录: 关于SQL学习及所用在线数据库 表联合 (join) SQL子查询 在select时创建新字段 (as, case when) 数据分组 (group by + 聚合函数count, sum, avg等) 利用over (partition by)进行数据分组并创建新字段 样本选择 1.关于SQL学习及所用在线数据库 之前有看过一些SQL学习的书.但如果从学习效率来说,跟着书学习SQL,不如直接看生产环境

SQL学习笔记:选取第N条记录

Northwind数据库,选取价格第二高的产品. 有两种方法,一个是用Row_Number()函数: SELECT productname FROM (SELECT TOP 2 productname, Row_Number() OVER (ORDER BY unitprice desc) AS rownum FROM Products) AS tbl WHERE rownum = 2; 另一种是对子语句的的结果再进行排序: SELECT top 1 productname FROM (SELE