Sybase函数归类使用
? Sybase字符串函数:
长度和语法分析datalength(char_expr)在char_expr中返回字符的长度值,忽略尾空substring(expression,start,length)返回部分字符串right(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中第一个字符的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的开始位置,否则为0patindex("%pattern%",expression)返回指定样式的开始位置,否则为0 datalength用于确定可变字符串的长度soundex用于确定字符串是否发音相似difference返回0-4之间的值,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-89 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.1415926power(numeric_expr,power)返回numeric_expr的值给power的幂rand([int_expr])返回0-1之间的随机浮点数,可指定基值round(numeric_expr,int_expr)把数值表达式圆整到int_expr指定的精度sign(int_expr)返回正+1,零0或负-1sqrt(float_expr)返回指定值的平方根SQL SERVER支持所有标准的三角函数和其他有用的函数
?
?日期函数:
getdate()返回当前的系统日期和时间datename(datepart,date_expr)以字符串形式返回date_expr指定部分的值,转换成合适的名字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的日期部件而产生的 datepart日期部件 缩写 值范围年 yy 1753-9999季度 qq 1-4月 mm 1-12每年中的天 dy 1-366天 dd 1-31星期 wk 1-54星期天 dw 1-7(1=sunday)小时 hh 0-23分钟 mi 0-59秒 ss 0-59毫秒 ms 0-999例:select invoice_no, datediff(dd,date_shipped,getdate()) from invoices where balance_due>0
?
?转换函数convert:
此函数把值从一种类型改变成另一种类型:convert(datetype [(length)],expression)select "Advance="+convert(char(12),advance) from titles
?
?日期转换:
convert(datetype[(length)],expression,format)format指定将日期转换为什么格式,有以下值:没有世纪 有世纪 转换字符串中日期格式 0 or 100 mon dd yyy hh:miAM(or PM)1 101 mm/dd/yy2 102 yy.mm.dd3 103 dd/mm/yy4 104 dd.mm.yy5 105 dd-mm-yy6 106 dd mon yy7 107 mon dd,yy8 108 hh:mm:ss 9 or 109 mon dd,yyyy hh:mi:ss:mmmAM(or PM)10 110 mm-dd-yy11 111 yy/mm/dd12 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
?