SQL中的几个常用函数(仅记录供以后使用)

1.Row_number over(partiotion by x1 order by x2 desc)

函数作用:将查询出的数据按照x1字段进行分组(类似group by 但是不会合并数据 )后,根据x2字段进行排序。例子:班级为2(partition by)的数据有4条,成绩为80 , 90 , 100 , 23 (order by)排序后为100,90,80,23 并将查询结果赋值序号 1,2,3,4。

2.convert(目标转化后的数据类型,目标字段,style值) 转化时间函数

例如:convert(varchar(100),A.datetime, 23) ,输出后格式为yyyy-MM-dd的字符串

3.charindex(目标字符串A,被查找的字符串B) 查询B中是否含有A字符串

例如:charIndex(abc,dddabcdd),返回的为下标值(不为0代表B中含有A),但是可以用于判断B中是否存在A字符串

4.DateDiff(单位,比较时间A,目标时间B) 用于比较时间B和A的差值,单位可以为day,seconds等

简单理解就是返回B-A的值(单位可以为day也可以为小时,分钟,秒等)

5.with name1 as(sql1 union all sql2 inner join name1 on sql2.xx = name1.xxx ) sql3

比较复杂的一个递归查询,从sql1(此sql也可以是复杂sql,但是用于获取基础数据)查询获取的值,放入name1的临时表中,在union all下一部分的sql中进行内连接查询,将查询后的值,在叠加存放到name1的表中,再进行递归查询(递归只递归union all下面的sql),直到on后的条件不满足为止 。最后name1 的临时表只能用于sql3的语句中使用
union all 只能将上面与下面返回字段一样的sql值合并,可存放重复数据。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
列举了SQL语句大部分常用函数 Abs(number) 取得数值的绝对值。 Asc(String) 取得字符串表达式的第一个字符ASCII 码。 Atn(number) 取得一个角度的反正切值。 CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。 CBool(expression) 转换表达式为Boolean 型态。 CByte(expression) 转换表达式为Byte 型态。 CChar(expression) 转换表达式为字符型态。 CDate(expression) 转换表达式为Date 型态。 CDbl(expression) 转换表达式为Double 型态。 CDec(expression) 转换表达式为Decimal 型态。 CInt(expression) 转换表达式为Integer 型态。 CLng(expression) 转换表达式为Long 型态。 CObj(expression) 转换表达式为Object 型态。 CShort(expression) 转换表达式为Short 型态。 CSng(expression) 转换表达式为Single 型态。 CStr(expression) 转换表达式为String 型态。 Choose (index, choice-1[, choice-2, ... [, choice-n]]) 以索引值来选择并传回所设定的参数。 Chr(charcode) 以ASCII 码来取得字符内容。 Close(filenumberlist) 结束使用Open 开启的档案。 Cos(number) 取得一个角度的余弦值。 Ctype(expression, typename) 转换表达式的型态。 DateAdd(dateinterval, number, datetime) 对日期或时间作加减。 DateDiff(dateinterval, date1, date2) 计算两个日期或时间间的差值。 DatePart (dateinterval, date) 依接收的日期或时间参数传回年、月、日或时间。 DateSerial(year, month, day) 将接收的参数合并为一个只有日期的Date 型态的数据。 DateValue(datetime) 取得符合国别设定样式的日期值,并包含时间。 Day(datetime) 依接收的日期参数传回日 ....

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值