分享
 
 
 

T-SQL 查询中使用的函数之系统函数

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

查询中使用的函数

在查询语句中,不仅可查询表中列的值而且可以使用内部函数查询数据库中不同类型的信息。可以在SELECT列表,WHERE子句和任何允许表达式的地方使用内部函数。这些函数都是T-SQL对SQL的扩展。Adaptive Server提供的内部函数可以分成以下几类:

l 系统函数。返回数据库中的信息;

l 字符串函数。用于处理字符串或字符串表达式;

l text函数。用于处理text和image类型的数据;

l 数学类型。用于处理三角、几何以及其它数据处理的函数;

l 日期函数。处理datetime和smalldatetime类型的数据;

l 数据类型转换函数(convert)。用于将一种数据类型转换成另一种数据类型,也可将日期格式化成各种形式。

l 安全函数。返回安全服务和用户自定义角色的信息

一、系统函数

系统函数从数据库返回特定的信息,它们中的大多数提供了查询系统表的简便方式。

系统函数的一般语法:

select function_name ( argument[s] )

系统函数可以用在选择项里、where子句里以及任何允许表达式存在的地方。例如:如果要查询“zyf”的用户标示号,则输入:

select “用户标示号” =user_id ( “zyf” )

结果:

用户标示号

——

3

一般来说,函数名表示里将返回什么样的信息。

User_name用ID号作参数而返回用户的名字。如下,如果查询ID号为3的用户名

Select “用户名” = user_name(3)

结果:

用户名

——

zyf

找出当前用户的名字(也就是正在使用的用户名)

select user_name()

结果:

用户名

——

dbo

Adaptive Server按照如下的规则处理用户标示符:

l 当系统管理员成为他使用的数据库的所有者时,其登陆用户ID被指定为1;

l guest用户的登陆用户ID总是-1

l 数据库所有者的用户总是dbo,他的用户ID是1;

l guest用户的ID是2

系统函数表

函数名

参数

返回结果

Col_name

(object_id,column_id[,database_id])

列名

Col_length

(object_name,column_name)

列的定义长度(使用datalength是查看实际数据的长度)

curunreservedpgs

(dbid,lstart,unreservedpgs)

磁盘片中的空闲页数。如果数据库是打开的,则该值来自于内存;如果数据库没有打开则该值来自于系统表sysusages中列unreservedpgs

Data_pgs

(object_id,{doampg | ioampg})

被表(doampg)或索引(ioampg)使用的页数。该结果不包括内部结果使用的页数

Datalength

(expression)

返回expression的长度。Expression可以是列名也可以是字符串常量。如果是列名则返回列中实际数据的长度。

Db_id

([database_name])

数据库的ID号。数据库名必须为字符表达式,如果数据库名为字符常量,则必须用引号将其引起来。如果没有给出数据库名,则返回当前数据库的ID号

Db_name

([database_id])

数据库名。Database_id必须是数值表达式如果没有给出database_id,则返回当前数据库名。

Host_id

()

客户进程(非Adaptive Server进程)的当前主机名

Host_name

()

索引列名。如果object_name 不是表名或视图名,则返回NULL

Index_col

(object_name,index_id,key_#[,user_id])

当expression1为NULL时,用expression2的值来代替expression1的值。表达式的值必须可隐式地转化,否则必须使用convert函数

Isnull

(expression1,expression2)

管理日志段的最后机?值。Lastchance:在指定的数据库中创建一个最后机会值;当指定数据库的最后机会值被超过时返回1,否则返回0;unsuspend:用以唤醒数据库中挂起的任务并且当最后机会值被超过时使用该机会值无效;reserve:返回要成功地转储指定大小的一个事务日志时所需的自由日志页的数目。

Lct_admin

({{“lastchance”|”logfull”|”unsuspend”}

,database_id}|

“reserve”

,log_pages})

分配给表或索引的页数

Reserved_pgs

(object_id,{doampg|ioampg})

表中行数的估计值

Rowent

(doampg)

数据库对象ID号

Object_id

(“objname”)

数据库对象名

Object_name

(obj_id)

从表syslogins中返回服务器用的ID号,如果没有给出参数server_user_name的值则返回当前用户的服务器ID号

Suser_id

([server_user_name])

返回服务器用户名,服务器用户的ID号存储在表syslogins中,如果没有给出参数server_user_id的值,则返回当前用户名。

Tsequal

(timestamp,timestamp2)

在浏览模式下,比较timestamp的值以阻止提交那些被修改过的值。Timestamp是被浏览行的时间标志;timestamp2是存储行的时间标志。该函数允许用户不调用db_library而使用浏览模式。

Used_pgs

(object_id,doampg,ioampg)

由表和聚簇索引使用的列数

User

用户名

User_id

([user_name])

用户的ID号。报告当前数据库中的用户ID号,如果没有给出参数user_name,返回当前用户的ID号。

User_name

([user_id])

返回与当前数据库的用户ID号相对应的用户名。如果没有提供参数user_id的值,则返回当前用户名。

Valid_name

(character_expression)

如果character_expression是无效的标识符(非法字符或长度超过了30),则返回0;否则返回非0数值

Valid_user

(server_user_id)

如果指定的ID号在Adaptive Server的至少一个数据库中有其对应的用户名或别名,则返回1;只有sa_role或sso_role角色的用户才可以使用该函数。

例子:

1、找出表titles中title列的长度

slelect “标题长度”=col_length(“article”,”title”)

结果:

标题长度

-----

120

2、找出表article中title列中数据的长度

select length=datalength(title),title

from article

结果:

length title

24 软透露其internet 策略

20 A推出两种网络新软件

21 IBM发布新版SYSTEMVIEW

3、查找所有作家的工资,如果工资为NULL值则替换成$10.00

select isnull(salary,$10.00)

from auths

结果:

——

120.00

100.00

110.00

10.00

4、查出系统表sysusers中的用户ID为1的用户名

select name form sysusers

where name=user_name(1)

结果:

name

——

dbo

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有