SQL server常用函数使用示例

  • select convert(nvarchar(10),id)+name from t //convert();数据类型转换,将“id”列转换为“nvarchar”。
  • select cast(id as nvarchar(10))+name as 合并列 from t //cast();也是数据类型转换。
  • select getdate(),current_user,DB_NAME(),HOST_NAME(),SYSTEM_USER //GETDATE(),当前日期时间;CURRENT_USER,当前数据库登录的用户;DB_NAME,当前所在数据库名称;HOST_NAME,当前主机名称;SYSTEM_USER,当前登录到数据库的用户。
  • select name as 姓名,DATALENGTH(name) as 字节
             ,LEN(name) as 字符
             ,LEFT(name,1) as 姓
             ,RIGHT(name,len(name)-1) as 名 from list  //DATALENGTH(),表示字节长度,一个汉字等于一个字符两个字节;LEN(),表示字符长度;LEFT(name,1)表示,将name列的,左数第一个显示;RIGHT(name,len(name)-1),表示先查看name列字符长度,减去1得出的结果,作为再次针对name列从右数的结果。
  • stuff(),例:stuff(name,1,1,’’)将name列的,从第一个开始数1个数,将其替换为空。
  • select DATEDIFF(yy,'20000101',getdate()) as 年
           ,DATEDIFF(mm,'20000101',getdate()) as 月
           ,DATEDIFF(dd,'20000101',getdate()) as 天
           ,DATEDIFF(hh,'20000101',getdate()) as 时
           ,DATEDIFF(mi,'20000101',getdate()) as 分
           ,DATEDIFF(ss,'20000101',getdate()) as 秒  //DATEDIFF()用来计算日期之间的相差,如上举例,分别表示从2000年01月01日到现在分别是多少年,月,天,时,分,秒
  • select 姓名,班主任 from 学生表 cross join 班级表 //交叉查询,此处为每一个学生将被每一个班主任轮流带一番。
  • select 姓名,班主任 from 学生表 inner join 班级表 on 学生表.班号=班级表.班号 //内连接
  • select 姓名,班主任 from 学生表 left outer join 班级表 on 学生表.班号=班级表.班号 //左外连接,当条件不能完全满足,将以左为主要进行查看
  • select 姓名,班主任 from 学生表 right outer join 班级表 on 学生表.班号=班级表.班号 //右外连接,当条件不能完全满足,将以右边为主要进行查看
  • select 姓名,班主任 from 学生表 full outer join 班级表 on 学生表.班号=班级表.班号 //完全外连接,条件不能满足时,也会查看其余不符合条件的

猜你喜欢

转载自www.cnblogs.com/joinbestgo/p/10558295.html