SQL SERVER 常用函数 / 语句
SQL SERVER 常用函数 / 语句
一、常用函数
1.字符串函数 :
1 2 3 4 5 6 7 8 9 10 11 12 13 | charindex( ':' , 'abcd:4567' ) --寻找一个字符在一段字符串中起始的位置 返回结果:5 len( 'test' ) --获取一段字符串的长度 返回结果:4 left ( 'str' ,2) --从一段字符串左边返回指定长度的字符 返回结果:'st' right ( 'str' ,2) --返回字符串右边int_expr个字符 返回结果:'tr' substring ( 'delphi' ,2,3) --截取字符串 返回结果:'el' datalength(Char_expr) --返回字符串包含字符数,但不包含后面的空格 length(expression,variable) --指定字符串或变量名称的长度 concat(str1,str2,...) --返回来自于参数连结的字符串 upper ( 'str' ) --将一段小写的字符串转换为大写 ltrim( ' str' ) --去除一段字符左边的空格 rtrim( 'str ' ) --去除一段字符右边的空格 stuff( 'abcdefg' ,2,4, 'book' ) --从指定的位置删除指定长度的字符串并替换为新的字符串 replace ( 'delphi test' , 'delphi' , 'xe' ) --将一段字符串中指定的字符串替换为另一段字符串 |
例如:
1 | select charindex( ':' , 'abcd:4567' ) -- 5 |
2.日期,时间函数
1 2 3 4 5 | getdate() --获取当前系统时间 datename(datepart,date_expr) --指定日期字符串中指定时间段的字符串格式 datepart(datepart,date_expr) --获取指定日期部分的整数形式 datediff(datepart,date_expr1.dateexpr2) --两个时间段中指定的间隔部分 dateadd(datepart,number,date_expr) --将指定的数值添加到指定的日期段后 |
3.系统函数
1 2 3 4 5 6 7 8 9 | 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) --是否是有效标识符 |
二、常用语句--(列的增删改)
1 2 3 4 | alter table tableName add columnName varchar (30) --增加列 alter table tableName alter column columnName varchar (4000) --修改列类型 EXEC sp_rename 'tableName.column1' , 'column2' (把表名为tableName的column1列名修改为column2) --修改列名称 alter table tableName drop column columnName --删除列 |
三、常用语句--(复制表结构)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | --复制表结构及数据到新表 select * into 目的数据库名.dbo.目的表名 from 原表名 select * into my0735home.dbo.infoMianTest from infoMian --备份表的一部分列(不写*而写出列的列表) select 列名1,列名2,列名3 into 目的数据库名.dbo.目的表名 from 原表名 select id,title,mtype,stype,author,tel,nr into infoMianTest2 from infomian --备份表的一部分行(加WHERE条件) select * into 目的数据库名.dbo.目的表名 from 原表名 where id<10 select * into infomiantest2 from infomian where id<10 --备份表的一部分列(不写*而写出列的列表)和一部分行(加WHERE条件) select 列名1,列名2,列名3 into 目的数据库名.dbo.目的表名 from 原表名 where id<10 --只复制表的结构: SELECT * INOT t1 FROM titles WHERE 1=2 --查询结果来源于多个表:如: SELECT t_id,title,p_name INTO t3 FROM titles t INNER JOIN pub p ON t.id=p.id |
四、常用语句--(表数据去重复)
1 2 3 4 5 6 7 8 9 10 11 | -- 先去重搜索、添加到临时表 select * into #test from ( select * from t_rain_fac_year_amount_sum where id in ( select max (id) from t_rain_fac_year_amount_sum group by site_code,monitor_point_code,monitor_factor_code, year )) a --查看临时表数据 select * from #test --删除原表 drop table t_rain_fac_year_amount_sum --将临时表数据插入原表 select * into t_rain_fac_year_amount_sum from #test |
创建时间:2020.03.17 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报