---------------------------------
1、将数据复制到一张新表中
select * into T1 from UserInfo
select * from T1
2、将表info_two的数据全部添加到info_one中
insert into info_one select * from info_two 【into】可以省略
--指定添加的列名
insert info_one(iName) select iName from info_two 【into】可以省略

1 if exists(select * from sys.objects where name='info_one') 2 drop table info_one 3 go 4 create table info_one 5 ( 6 id int , 7 iName varchar(20) 8 ) 9 10 if exists(select * from sys.objects where name='info_two') 11 drop table info_two 12 go 13 create table info_two 14 ( 15 id int , 16 iName varchar(20) 17 ) 18 insert into info_one values(1,'张丹1') 19 insert into info_one values(2,'张丹2') 20 insert into info_one values(3,'张丹3') 21 22 insert into info_two values(5,'张丹5') 23 insert into info_two values(6,'张丹6') 24 insert into info_two values(7,'张丹7') 25 26 select * from info_one 27 select * from info_two 28 --将表info_two的数据全部添加到info_one中 29 insert into info_one select * from info_two
3、删除重复信息
delete from info where id not in(select min(id) from info group by UserID,UserName)
3.1删除内容:
truncate table 表名
4、修改语句
错误写法:
update a set a.validate='10' from my_kaohe_chuqin a
select * from my_kaohe_chuqin where system_id='1001001486' and individual_id='100100168827' and years='2016' and zhouqi='20'
and c_text='14' and me_id='51701' ------这是2条语句
正确写法:
update a set a.validate='10' from my_kaohe_chuqin a
(select * from my_kaohe_chuqin) where a.system_id='1001001486' and a.individual_id='100100168827' and a.years='2016' and a.zhouqi='20'
and a.c_text='14' and a.me_id='51701' ------去掉括号里面的
----------------------------------
函数:
1、convert(类型,值)
例:
select convert(int,'1234')+1 //1235
select convert(varchar(20),getdate(),112) //20160612
select convert(varchar(5),getdate(),112) //20160 [varchar(5): 取值的前5位]
select convert(varchar,getdate(),108) //17:06:30 [varchar :不设置范围时取全值]
2、replace(值,'a','b') //如果值中存在a 则将'a'取代成'b',没有则不替换
例:
select replace('112233','1','44') //44442233
select replace('12:30:55',':','') //123055
select replace('12:30:55','小马','') //12:30:55
select replace(convert(varchar,getdate(),108),':','') //170308 [结合convert() 函数使用]
select replace(convert(varchar(5),getdate(),108),':','') //1703 [结合convert() 函数使用]
3、cast(值 as 类型) //类型转换
例:
select cast('123' as int)
select cast('123 1' as int) //在将 varchar 值 '123 1' 转换成数据类型 int 时失败
select cast('123a' as int) //在将 varchar 值 '123a' 转换成数据类型 int 时失败
4、substring(值,首位,个数)
例:
select substring('123456',1,3) //123
select substring('123666',4,2) //66
select substring('123666',4,100) //666
select substring('转换成数据类型',2,100)//换成数据类型 [一个中文为2字符]
select substring('在将 varchar 值 "123a" 转换成数据类型 int 时失败',6,4) //rcha
select substring('1 2 3 4',2,4) //2 3 [空格算一字符]
5、left/right(值,长度)
例:
select left('1234',3) //123 截取左边3位
select right('1234',3) //234 截取右边3位
6、isnull(值1,值2) 【值1为null,则取值2,不为null,则取值1】
例:
select isnull(1,100) //1
select isnull(null,100) //100
select isnull(null,null) //null
select isnull(1,null) //1
select isnull(null,'无') //无
7、case when sex=1 then '男'
when sex=2 then '女'
else '其他' end
例:

1 if exists(select * from sys.objects where name='info_eleven') 2 drop table info_eleven 3 go 4 create table info_eleven 5 ( 6 id int primary key identity(1,1), 7 iName varchar(20), 8 sex char(2) 9 ) 10 insert into info_eleven values('小明','女') 11 insert into info_eleven values('小白','男') 12 insert into info_eleven values('小张','女') 13 14 select 15 iName,case when sex='女' then '1' 16 when sex='男' then '2' 17 else '0' end 18 from info_eleven
8、datediff(day/year/month,时间段1,时间段2) 两个时间段相差的值
例:
select datediff(day,'2016-6-01 00:00:00','2016-6-02 00:00:00') --日 d/dd/day --1 时分秒忽略不计
select datediff(d,'2016-6-01 23:59:00','2016-6-02 00:00:00') --日 d/dd/day --1 时分秒忽略不计
select datediff(year,'2016-6-01 00:00:00','2017-6-02 00:00:00') --年 yyyy/yy/year --1
select datediff(yy,'2016-6-01 00:00:00','2017-6-02 00:00:00') --年 yyyy/yy/year --1
select datediff(month,'2016-6-01 00:00:00','2017-7-02 00:00:00') --月 m/mm/month --13
select datediff(WK,'2016-6-01 00:00:00','2016-7-02 00:00:00') --周 ww/wk/week --4
select datediff(WK,'2016-6-01 00:00:00','2016-8-01 00:00:00') --周 ww/wk/week --9
select datediff(WK,'2016-6-01 00:00:00','2016-9-01 00:00:00') --周 ww/wk/week --13
select datediff(WK,'2016-6-01 00:00:00','2016-10-01 00:00:00')--周 ww/wk/week --17
select datediff(w,'2016-6-01 00:00:00','2016-7-01 00:00:00') --星期 dw/w --30
select datediff(DW,'2016-6-01 00:00:00','2016-8-01 00:00:00') --星期 dw/w --61
select datediff(DW,'2016-6-01 00:00:00','2016-9-01 00:00:00')--星期 dw/w --92
select datediff(DW,'2016-6-01 00:00:00','2016-10-01 00:00:00')--星期 dw/w --122

1 年 yy, yyyy 2 季度 qq, q 3 月 mm, m 4 年中的日 dy, y 5 日 dd, d 6 周 wk, ww 7 星期 dw, w 8 小时 hh 9 分钟 mi, n 10 秒 ss, s 11 毫秒 ms 12 微妙 mcs 13 纳秒 ns
9、rtrim(str) 返回字符串str与尾部的空格字符去掉
例:
select rtrim('1 1 ')+'w' //1 1w
select 'a'+rtrim('右边空 ')+'b' //a右边空b
select 'a'+rtrim(' 左边空')+'b' //a 左边空b
select 'a'+rtrim(' 两边空 ')+'b' //a 两边空b
10、charindex('a',id) id字段中含有"a"或者"b"的记录 【返回的值为0或1】
例:
select * from table_a where charindex('a',id)>0 or charindex('b',id)>0
table_a 表中 id字段中含有"a"或者"b"的记录.
select charindex('1',12) //1
select charindex('1',22) //0
select charindex('-',CAST(-100 as varchar(20))) //1
select case when 1=charindex('1','12') then '有值' end //有值
11、isnumeric(值) 判断值是否为‘数字’ 是为:‘1’ 否为:‘0’
例:
select isnumeric('') //0
select isnumeric(null) //0
select isnumeric(23432423) //1
select isnumeric(0) //1
select isnumeric(-23432423) //1
select isnumeric('dsfdfds') //0
select ISNUMERIC(GETDATE()) //0
12、union or union all :合并两个或多个 SELECT 语句的结果集
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
例:

1 create table info_eight 2 ( 3 id int, 4 iname varchar(20) 5 ) 6 insert into info_eight values(1,'小明') 7 insert into info_eight values(1,'小红') 8 insert into info_eight values(1,'小蓝') 9 create table info_twelve 10 ( 11 id int, 12 iname varchar(20) 13 ) 14 insert into info_twelve values(1,'小明1') 15 insert into info_twelve values(1,'小红') 16 insert into info_twelve values(1,'小蓝1') 17 18 --5条数据,重复的被去掉 19 select * from info_eight 20 union 21 select * from info_twelve 22 --6条数据,重复的还在 23 select * from info_eight 24 union all 25 select * from info_twelve
13、dateadd(yy/mm/dd,-1,'年-月-日 00:00:00') 修改年月日
例:
select CONVERT(varchar(20),DATEADD(dd,-1,'2016-02-02 00:00:00'),20) //2015-02-02 00:00:00
select CONVERT(varchar(20),DATEADD(MM,-1,'2016-02-02 00:00:00'),20) //2016-01-02 00:00:00
select CONVERT(varchar(20),DATEADD(DD,-1,'2016-02-02 00:00:00'),20) //2016-02-01 00:00:00
14、ident_current('表名') 查询出字段中带有约束‘indentity(1,1)’ 的最后一个‘值’
select ident_current('dbo.info_two') //null 【不含约束‘indentity’的表】
select ident_current('dbo.info_three') //3
select ident_current('dbo.info_four') //98

1 if exists(select * from sys.objects where name='info_two') 2 drop table info_two 3 go 4 create table info_two 5 ( 6 t_name varchar(30), 7 id int 8 ) 9 insert into info_two values('红',1) 10 insert into info_two values('黄',2) 11 insert into info_two values('绿',3) 12 select * from info_two 13 14 select ident_current('dbo.info_two') //null 15 if exists(select * from sys.objects where name='info_three') 16 drop table info_three 17 go 18 create table info_three 19 ( 20 id int identity(1,1), 21 t_name varchar(30) 22 ) 23 insert into info_three values('红_three') 24 insert into info_three values('黄_three') 25 insert into info_three values('绿_three') 26 select * from info_three 27 28 select IDENT_CURRENT('info_three') //3 29 if exists(select * from sys.objects where name='info_four') 30 drop table info_four 31 go 32 create table info_four 33 ( 34 id int identity(100,-1), 35 t_name varchar(30) 36 ) 37 insert into info_four values('红_four') 38 insert into info_four values('黄_four') 39 insert into info_four values('绿_four') 40 select * from info_four 41 42 select IDENT_CURRENT('info_four') //98