关于sql常用的上取整下取整等常用函数

 

1.操作数字

select 12.3456 as a ,2.3 as b, 4.9 as c,'ceshi' as d into #tb1

select CEILING(b) from #tb1  ---向上取整:3
select FLOOR(c) from #tb1 ---向下取整 :4

select ROUND(a,3) from #tb1 ---在第3个小数点处四舍五入,且保留原始小数位数:12.3460

select RTRIM(d) from #tb1 ---去除字符末尾的空白

select RAND()*100 as suiji  ---生成随机数

drop table  #tb1

select   cast(10.1235456 as decimal(10,2))

如果想四舍五入的话,可以嵌套round

select   cast(round(10.1235456,2) as decimal(10,2))

 

2. 截取字符串

字段A=’F:\photo\Winter Leaves.jpg’  
要求:分段截取每段字符[字段A不能为TEXT类型,否则报错]
解决方法:

---截取字符串A的第一个\左边的字符串
select left(A,charindex(’/’,A)-1)
输出结果:F:

---截取\中间的字符串
select  left(stuff(A,1,charindex(’/’,A),’’),charindex(’/’,stuff(A,1,charindex(’/’,A),’’))-1)
输出结果:photo

---截取最后一个\后面的字符串
select  reverse(left(reverse(A),charindex(’/’,reverse(A))-1))
输出结果:Winter Leaves.jpg

---截取字符串A的首字幕
select  STUFF(A,1, 1, ’’)
输出结果::\photo\Winter Leaves.jpg

SQL SERVER 的函数<br>1.字符串函数 <br>长度与分析用 <br>datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 <br>substring(expression,start,length) 不多说了,取子串 <br>right(char_expr,int_expr) 返回字符串右边int_expr个字符 <br>字符操作类 <br>upper(char_expr) 转为大写 <br>lower(char_expr) 转为小写 <br>space(int_expr) 生成int_expr个空格 <br>replicate(char_expr,int_expr)复制字符串int_expr次 <br>reverse(char_expr) 反转字符串 <br>stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1的从 start开始的length个字符用char_expr2代替 <br>ltrim(char_expr) rtrim(char_expr) 取掉空格 <br>ascii(char) char(ascii) 两函数对应,取ascii码,根据ascii吗取字符 <br>字符串查找 <br>charindex(char_expr,expression) 返回char_expr的起始位置 <br>patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0 <br>2.数学函数 <br>abs(numeric_expr) 求绝对值 <br>ceiling(numeric_expr) 取大于等于指定值的最小整数 <br>exp(float_expr) 取指数 floor(numeric_expr) 小于等于指定值得最大整数 <br>pi() 3.1415926......... <br>power(numeric_expr,power) 返回power次方 <br>rand([int_expr]) 随机数产生器 <br>round(numeric_expr,int_expr) 安int_expr规定的精度四舍五入 <br>sign(int_expr) 根据正数,0,负数,,返回+1,0,-1 <br>sqrt(float_expr) 平方根 <br>3.日期函数 <br>getdate() 返回日期 <br>datename(datepart,date_expr) 返回名称如 June <br>datepart(datepart,date_expr) 取日期一部份 <br>datediff(datepart,date_expr1.dateexpr2) 日期差 <br>dateadd(datepart,number,date_expr) 返回日期加上 number <br>上述函数datepart的 写法 取值和意义 <br>yy 1753-9999 年份 <br>qq 1-4 刻 <br>mm 1-12 月 <br>dy 1-366 日 <br>dd 1-31 日 <br>wk 1-54 周 <br>dw 1-7 周几 <br>hh 0-23 小时 <br>mi 0-59 分钟 <br>ss 0-59 秒 <br>ms 0-999 毫秒 <br>日期转换 convert() <br>4.系统函数 <br>suser_name() 用户登录名 <br>user_name() 用户在数据库的名字 user 用户在数据库的名字 <br>show_role() 对当前用户起作用的规则 <br>db_name() 数据库名 <br>object_name(obj_id) 数据库对象名 <br>col_name(obj_id,col_id) 列名 <br>col_length(objname,colname) 列长度 <br>valid_name(char_expr) 是否是有效标识符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值