您的位置:首页 > 数据库

SQL Server部分函数的基本用法

2012-08-03 09:25 411 查看
1、object_id('Tempdb..#T')

if object_id('Tempdb..#T') is not null
drop table #T

是判断语句.
如果 tempdb数据库中的#T临时表存在的话,则删除它.
删除它的目的是后面想要生成这个临时表,如果原先有,就生成不了了.

表名前使用一个#号,临时表是局部的,使用两个#号,临时表是全局的,在断开连接后sql会自动删除临时表

临时表除了名称前多了#号外,其他操作与普通表完全一样。

2、ROW_NUMBER() OVER ()

ROW_NUMBER() OVER([PARTITION BY COL1] ORDER BY COL2) AS 别名

表示根据COL1分组,在分组内部根据COL2排序,而这个“别名”的值表示表示每组内部排序后的顺序编号(组内连续的唯一的)

[PARTITION BY COL1]可省略,省略后即不分组直接按照COL2排序(COL2可以为多个字段)

3、 CAST 和 CONVERT 类型转换函数

CAST是两种功能中更具 ANSI 标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些。不过, 当小数转化为数值,并保留原始表达式中的小数数值时,仍然需要使用CAST,首先使用CAST,如果遇到必须使用 CONVERT 的情况时再使用 CONVERT

CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性

CAST:CAST( expression AS data_type )

CONVERT: CONVERT (data_type[(length)], expression [, style])

expression 是任何有效的 Microsoft SQL Server 表达式。 有关更多信息, 请参见表达式。

data_type 目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义 的数据类型。有关可用的数据类型的更多信息,请参见数据类型。

length nchar、 nvarchar、 char、 varchar、 binary 或 varbinary 数据类型的可选参数。

style 日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据 (nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字 符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数 据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

4、DATEADD()

DATEADD() 函数在日期中添加或减去指定的时间间隔。

DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:

datepart缩写
yy, yyyy
季度qq, q
mm, m
年中的日dy, y
dd, d
wk, ww
星期dw, w
小时hh
分钟mi, n
ss, s
毫秒ms
微妙mcs
纳秒ns
5、ISNULL()和NULLIF()

ISNULL(check_expression, replacement_value)

check_expression 与 replacement_value 数据类型必须一致

如果 check_expression 为 NULL,则返回 replacement_value 如果 check_expression 不为 NULL,则返回 check_expression

NULLIF(expression, expression)

如果两个 expression 相等,则返回 NULL,该 NULL 为第一个 expression 的值 如果两个 expression 不相等,则返回第一个 expression

5、取整函数trunc、round、ceil、floor、sign

1 trunc(value,precision)按精度(precision)截取某个数字,不进行舍入操作。

2 round(value,precision)根据给定的精度(precision)输入数值。

3 ceil (value) 产生大于或等于指定值(value)的最小整数。

4 floor(value)与 ceil()相反,产生小于或等于指定值(value)的最小整数。

5 sign(value) 与绝对值函数ABS()相反。ABS()给出的是值的量而不是其符号,sign(value)则给出值的符号而不是量。

1,返回大于或等于x的最大整数: SQL> select ceil(23.33) from dual;

CEIL(23.33) ----------- 24

2,返回等于或小于x的最大整数: SQL> select floor(23.33) from dual;

FLOOR(23.33) ------------ 23

3,返回舍入到小数点右边y位的x值:rcund(x,[y]) SQL> select round(23.33) from dual;

ROUND(23.33) ------------ 23

4,返回截尾到y位小数的x值:trunc(x,[y]) SQL> select trunc(23.33) from dual;

TRUNC(23.33) ------------ 23

5,返回x的符号 SQL> select sign(-23.33) from dual;

SIGN(-23.33) ------------ -1

6、LTRIM、RTRIM移除空白

LTRIM(字串): 将所有字串起头的空白移除(leading起头)。

RTRIM(字串): 将所有字串结尾的空白移除(trailing结尾)。

7、CHARINDEX

CHARINDEX ( expression1 , expression2 [ , start_location ] )

expression1是要到expression2中寻找的字符串,start_location是CHARINDEX函数开始在expression2中找expression1的位置。

SQL CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如SQL CHARINDEX函数没有找到要找的字符串,那么函数整数“0”。让我们看看下面的函数命令执行的结果:

CHARINDEX('SQL', 'Microsoft SQL Server')

这个函数命令将返回在“Microsoft SQL Server”中“SQL”的起始位置,在这个例子中,CHARINDEX函数将返回“S”在“Microsoft SQL Server”中的位置11。

8、SUBSTRING

SUBSTRING ( expression , start , length )

返回字符、binary、text 或 image 表达式的一部分

参数:

expression 是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表 达式。

start 是一个整数,指定子串的开始位置。

length 是一个整数,指定子串的长度(要返回的字符数或字节数)

返回值:

如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。
返回字符串的类型与给定表达式的类型相同(表中显示的除外)

给定表达式返回类型
imagevarbinary
ntextnvarchar
9、LEFT

LEFT(<character_expression>, <integer_expression>)
返回 character_expression 左起 integer_expression 个字符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: