程序员人生 网站导航

sybase函数汇总

栏目:数据库应用时间:2016-09-30 10:58:36

datalength(char_expr)
   在char_expr中返回字符的长度值,疏忽尾空

char_length  

返回表达式中字符的数量。对可变长度的列和变量,它将返回字符的个数(包括尾部的空格);对文字和固定长度的字符列和变量,就是声明的长度。所以1般我们要求字符串的长度,最后不要用这个。

len 返回指定字符串表达式(不包括尾随空白)的字符数(而不是字节数)

len(string_expression)

例如:select  len(‘中国’) 结果:2

注意: char_length,char,len之间的区分


substring(expression,start,length)
   返回部份字符串

str_replace 将第1个字符串表达式中出现的第2个字符串表达式的所有实例替换为第3个表达式。

例如:select str_replace(‘aaabbbccc’,’bb’,’mm’)  结果:aaammbccc

compare 直接比较两个字符串,如果不1样,则返回⑴
right(char_expr,int_expr)
   返回char_expr右侧的int_expr字符

left(char_expr,int_expr)
   返回char_expr左侧的int_expr字符

upper(char_expr)
   把char_expr转换成大写情势
lower(char_expr)
   把char_expr转换成小写情势
space(int_expr)
   生成有int_expr个空格的字符串
replicate(char_expr,int_expr)
   重复char_expr,int_expr次
stuff(expr1,start,length,expr2)
   用expr2代替epxr1中start起始长为length的字符串
reverse(char_expr)
   反写char_expr中的文本
ltrim(char_expr)
   删除头空
rtrim(char_expr)
   删除尾空

ascii(char_expr)
   返回char_expr中第1个字符的ASCII值
char(int_expr)
   把ASCII码转换为字符
str(float_expr[,length[,decimal]])
   进行数值型到字符型转换
soundex(char_expr)
   返回char_expr的soundex值
difference(char_expr1,char_expr2)
   返回表达式soundex值之差

charindex(char_expr,expression)
   返回指定char_expr的开始位置,否则为0
patindex("%pattern%",expression)
   返回指定样式的开始位置,否则为0
 
注:datalength用于肯定可变字符串的长度
       soundex用于肯定字符串是不是发音相似
       difference返回0⑷之间的值,0表示最不相似,4表示最相似
通配符
   % 匹配任何数量的字符或无字符
   _ 匹配任何单个字符(空间占位符)
   [] 规定有效范围,或某个"OR"条件
     [ABG]  A,B,G
     [A-C]  A,B,C  
     [A-CE-G] A,B,C,E,F,G
     [^ABG]    除A,B,G
     [^A-C]  除A,B,C
 
escape子句
用某个转义字符可在搜索字符串时将通配符作为文字来包括。
ANSI⑻9 SQL 标准定义了escape子句指定某个转义字符
缺省情况下,[]来转义某个通配符,例:
   select * from test_tab
     where description like "%20[%]%"
语法:
   like char_expression escape escape_character

   select * from test_tab
     where description like "%20#%%" escape "#"
+ 可用于串接字符
   select au_laname+","+au_fname from authors
 
数学函数
abs(numeric_expr)
    返回指定值的绝对值
ceiling(numeric_expr)
   返回大于或等于指定值的最小整数
exp(float_expr)
   给出指定值的指数值
floor(numeric_expr)
   返回小于或等于指定值的最大整数
pi()
   返回常数3.1415926
power(numeric_expr,power)
   返回numeric_expr的值给power的幂

square  返回表示为float的指定值的平方值。

Square(numeric)

例如:select square(price) from titles

Select square(5)  结果:25.0

注意:次函数同等于power(muneric_expr,2),但是它返回float类型而不返回int类型。


rand([int_expr])
   返回0⑴之间的随机浮点数,可指定基值
round(numeric_expr,int_expr)
   把数值表达式圆整到int_expr指定的精度
sign(int_expr)
   返回正+1,零0或负⑴
sqrt(float_expr)
   返回指定值的平方根
SQL SERVER 支持所有标准的3角函数和其他有用的函数
 
日期函数
getdate()
   返回当前的系统日期和时间

current_date() 返回当前日期(不包括小时)

current_time() 返回当前时间


datename(datepart,date_expr)
   以字符串情势返回date_expr指定部份的值,转换成适合的名字

eg:Select datename(month,getdate()) 结果November


datepart(datepart,date_expr)
   作为整数返回date_expr值的指定部份
datediff(datepart,date_expr1,date_expr2)
   返回date_expr2-date_expr1,通过指定的datepart度量
dateadd(datepart,number,date_expr)
   返回日期,通过在date_expr上增加指定number的日期部件而产生的

day 返回指定日期的datepart中表示天的整数

Select day(‘11/02/03’) 结果 2

month 返回1个整数,该整数表示月份。

例如:select month(getdate()) 结果:12

同理: select day(getdate())   结果:15

       select year(getdate())   结果:2006

 


 
tips:datepart
日期部件  缩写  值范围  
年    yy  1753⑼999
季度    qq  1⑷
月    mm  1⑴2
每一年中的天  dy  1⑶66
天    dd  1⑶1
星期    wk  1⑸4
星期天    dw  1⑺(1=sunday)
小时    hh  0⑵3
分钟    mi  0⑸9
秒    ss  0⑸9
毫秒    ms  0⑼99
例:
   select invoice_no,
     datediff(dd,date_shipped,getdate())
     from invoices
     where balance_due>0
 
转换函数

convert
此函数把值从1种类型改变成另外一种类型
   convert(datetype [(length)],expression)
   select "Advance="+convert(char(12),advance)
     from titles
日期转换
   convert(datetype[(length)],expression,format)
format指定将日期转换为何格式,有以下值:
没有世纪  有世纪    转换字符串中日期格式
   tips:  0 or 100  mon dd yyy hh:miAM(or PM)
1    101    mm/dd/yy
2    102    yy.mm.dd
3    103    dd/mm/yy
4    104    dd.mm.yy
5    105    dd-mm-yy
6    106    dd mon yy
7    107    mon dd,yy
8    108    hh:mm:ss
9 or 109  mon dd,yyyy hh:mi:ss:mmmAM(or PM)
10    110    mm-dd-yy
11    111    yy/mm/dd
12    112    yymmdd
 
系统函数
函数          定义
访问和安全性信息
host_id()          客户进程确当前主机进程ID号
host_name()        客户进程确当前主计算机名
suser_id(["login_name"])  用户的SQL Server ID号
suser_name([server_user_id])  用户的SQL Server登录名
user_id(["name_in_db"])    用户在数据库 中的ID号
user_name([user_id])    用户在数据库中的名字
user            用户在数据库中的名字
show_role()        用户确当前活动角色
数据库和对象信息
db_id(["db_name"])    数据库ID号
db_name([db_id])      数据库
object_id("objname")    数据库对象ID号
object_name(obj_id])    数据库对象号
col_name(obj_id,col_id)    对象的栏名
col_length("objname","colname")  栏的长度
index_col("objname",index_id,key#)  已索引的栏名
valid_name(char_expr)    若char_expr不是有效标识符,则返回0
数据函数
datalength(expression)    按字节返回expression的长度
tsequal(timestamp1,timestamp2)  比较时戳值,若时戳值不匹配,则返回出错消息
 
isnull()
isnull函数用指定的值代替查询栏或合计中的空值
例:
   select avg(isnull(total_order,$0))
     from invoices

col_length 返回已定义的列的长度。如:返回表tablename 的title列的长度,selectcol_length(‘tablename’,’title’)

注意:对text和image,numeric列比较特殊。

 

col_name 返回已指定表 ID 和列 ID 的列的名称,且最长可为 255 个字节。

语法                    col_name(object_id, column_id [, database_id])

参数                    object_id 是1个数值表达式,它是表、视图或其它数据库对象的对象   ID。它们 存储在 sysobjects id 列中

                           column_id是1个数值表达式,它表示1列的列 ID。它们存储在 syscolumns 的colid 列中。

                           database_id是1个数值表达式,它表示数据库ID。它们存储在 sysdatabase 的db_id 列中。

curunreservedpas 返回指定磁盘区段中的可用页数

Curunreservedpgs(dbid,istart,unreservedpgs)

dbid是数据库的ID,它们存储在sysdatabases的dbid字段。

Istart是要返回的页所在磁盘区段中的1页。

Unreservedpgs是在dbtable当前对所要求的数据库不可用时返回的缺省值。

 

eg: 返回数据库名称、装备名和每一个装备区段中的未保存页数。

select db_name(dbid),d.name,curunreservedpgs(dbid,1,unreservedpgs)

from sysusages u ,sysdevices d where d.low<=u.size+vstart

and d.high>=u.size+vstart - 1

and d.status &2 = 2

db_id 返回数据库的ID号

Select db_id(‘pub’) 返回pub数据库的id

Select db_id()  当前数据库的ID

identity_burn_max 跟踪给定表的identity burn最大值,此函数只返还只而不进行更新。

例如:select  identity_burn_max(‘tablename’)

注意:返回的是自增列的最大ID,如果这个表没有自增列,则返回为null

object_id 返回指定对象的对象ID,object_name是返回对象ID的对象名称。

Obeject_di(object_name)

object_name数据库对象(表、视图、进程、触发器、缺省值或规则)的名称。

例如:select object_id(‘TBL_ZONE’)  结果:437573566

一样 selectobject_name(437573566)   结果:TBL_ZONE

注意:对象ID存储在sysobjectsID列中。

 

 

index_col 返回指定表或视图中带索引的列的名称。

index_clolrder 返回列的顺序

is_sec_service_on 安全服务启用时返回1;否则返回0

is_sec_service_on(sevurity_service_nm)

其中:sevurity_service_nm是安全服务的名称。

查找安全服务的有效名称,用select * from syssecmechs

例如:select is_sec_service_on(“unifiedlogin”)

mut_excl_roles 返回有关两个角色之间互斥性的信息。

mut_excl_roles是1个系统函数。如果系统安全员将role1定义为与role2互斥的角色,或直接有role2所包括的角色,则mut_excl_roles返回1,如果不是则返回0。

newid 根据提供的参数生成两种不同格式的、人工可读的全局唯1ID

Newid([optionflag])

例如:select newid()

select newid(0)

select newid(0x0)

select newid(1)

 

可以通过newid()来参数随机器数

select id  from  tablename order by newid()

这时候你会发现,每次履行,排序都不1样。

next_identity 检查下1个insert可用的下1个标识值。(就是下1个自增的ID)

Next_identity(tablename)

例如:select next_identity(‘tbl_zone’)  结果:返回tbl_zone表中下1个要自增的id

注意:如果这个表不是自增,则返回null

proc_role 返回关因而否已授与用户指定角色的信息。(通俗点就是你登陆后看看你是不是有某些角色,有则返回1,否则返回0)

例如:检查用户是不是已被授与系统安全员角色:

Select proc_role(‘sso_role’)

检查用户是不是已被授与系统安全员角色:

Select proc_role(‘oper_role’)

role_contain 当role2包括role1是返回1

role_contain(‘role1’,’role2’)

role_id  返回已指定名称的角色的系统角色ID

role_name  返回已指定系统角色ID的角色名称

role_id(‘role_name’)

role_ name’(role_id)

例如:返还sa_role的系统角色ID

Select  role_id(‘sa_role’)  结果:0

Select  role_name(0)  结果:sa_role

show_role 显示登陆确当前启用的角色。

例如:select show_role()

show_sec_services 列出可供会话使用的安全服务。

例如:select show_sec_services()

注意:如果没有,则为null

suser_id  从syslogins表中返回服务器用户的ID号

suser_name  从syslogins表中返回服务器用户的名称

Suser_id([server_user_name])

例如:select suser_id()

或  selectsuser_id(‘lei’)

select suser_name()

或 select suser_name(4)

syb_quit 终止连接.

例如:终止在其中履行该函数且返回毛病消息的连接.

Select syb_quit()

tempdb_id 报告给定会话分配到的临时数据库.

used_pgs 返回表或索引所用的页数.

user  返回当前用户的名称.

user_id 返回数据库中指定用户或当前用户的ID号

user_name 返回数据库中指定用户或当前用户的名称.

例如:select user_id()

或select user_id(‘lei’)

或select user_name()

或select user_name(4)

valid_name  如果指定字符串不是有效标识符,则返回0,否则返回非0数字

vaild_user 看是不是是1个数据库中的有功效户或别名.

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐