辅导:SQLserver组合查询+sql常用函数
来源:优易学  2011-10-22 9:00:08   【优易学:中国教育考试门户网】   资料下载   IT书店
  有2个表,A和B它们通过一个id关联,都有一个时间列。要求列出B表时间列大于A表时间列5天的数据,并且要求A表的id列的第9位不等于7,想了很久没有解决,后来请教同事才做好:
  select B.id from B join A on A.id=B.id where substring(B.id,9,1)!='7' and dateadd(dy,5,A.time)<B.time
  这些都用到sql的常用函数,下面列出常用的函数以方便大家:
  1.字符串函数
  长度与分析用
  datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格
  substring(expression,start,length) 不多说了,取子串
  right(char_expr,int_expr) 返回字符串右边int_expr个字符
  字符操作类
  upper(char_expr) 转为大写
  lower(char_expr) 转为小写
  space(int_expr) 生成int_expr个空格
  replicate(char_expr,int_expr)复制字符串int_expr次
  reverse(char_expr) 反转字符串
  stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从
  start开始的length个字符用char_expr2代替
  ltrim(char_expr) rtrim(char_expr) 取掉空格
  ascii(char) char(ascii) 两函数对应,取ascii码,根据ascii吗取字符
  字符串查找
  charindex(char_expr,expression) 返回char_expr的起始位置
  patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0
  2.数学函数
  abs(numeric_expr) 求绝对值
  ceiling(numeric_expr) 取大于等于指定值的最小整数
  exp(float_expr) 取指数
  floor(numeric_expr) 小于等于指定值得最大整数
  pi() 3.1415926.........
  power(numeric_expr,power) Examda提示:返回power次方
  rand([int_expr]) 随机数产生器
  round(numeric_expr,int_expr) 安int_expr规定的精度四舍五入
  sign(int_expr) 根据正数,0,负数,,返回+1,0,-1
  sqrt(float_expr) 平方根
  3.日期函数
  getdate() 返回日期
  datename(datepart,date_expr) 返回名称如 June
  datepart(datepart,date_expr) 取日期一部份
  datediff(datepart,date_expr1.dateexpr2) 日期差
  dateadd(datepart,number,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 周几
  hh 0-23 小时
  mi 0-59 分钟
  ss 0-59 秒
  ms 0-999 毫秒
  日期转换
  convert()
  4.系统函数
  suser_name() 用户登录名
  user_name() 用户在数据库中的名字
  user 用户在数据库中的名字
  show_role() 对当前用户起作用的规则
  db_name() 数据库名
  object_name(obj_id) 数据库对象名
  col_name(obj_id,col_id) 列名
  col_length(objname,colname) 列长度
  valid_name(char_expr) 是否是有效标识符

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训