本文将列出一些在平常开发过程中会用到的比较经典的SQL语句,常常用于实现一些特别的功能.
1.SQL插入语句得到自动生成的递增ID值
Insert into Table1(Name,des,num) values ('ltp','thisisbest',10);
select @@identity as 'Id'
2.实现是1或0想显示为男或女
select name,sex=
case Sex
when '1' then '男'
when '0' then '女'
end
from Tablename
3.嵌套查询
select a,b,c from Table1 where a IN(select a from Table2)
4.显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate
from tablename a,(select max(adddate) adddate from tablename where tablename.title=a.title) b
5.在同一表内找相同属性的记录
select UserID from Accounts_Users
where UserName is not null
group by UserID
having count (*) >1
6. 查询类别所有的产品对应数据
select CategoryName,ProductName
from Categories left join on Products
on Categories.CategoryID=Products.CategoryID
7.按范围查询编号在2到5之间的用户信息
select * from UserValue where UserID between 2 and 5
8.日程安排提前5分钟提醒
select * from TabSchedule where datediff(minute,getdate(),开始时间)<5
9.按姓氏笔画排序
select * from TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as
10.得出某日期所在月份的最大天数
select day(dateadd(dd,-day('2008-02-13'),dateadd(mm,1,'2008-02-13') ) )
as 'DayNumber'
11.通配符的一些用法
(1)select * from tablename where column like '[A-M]%'
这样可以选择出column 字段中首字母在A-M之间的记录
(2)select * from tablename where column like '[ABC]%' .
这样可以选择出column 字段中首字母是A或者B或者C的记录
(3)select * from tablename where column like '[A-CG]%'
这样可以选择出column 字段中首字母在A-C之间的或者是G的记录
(4)select * from tablename where column like '[^C]%'
这样可以选择出column 字段中首字母不是C的记录
单字符(关键字:like_):
通过使用下划线字符(_),可以匹配任意单个字符
select * from tablename where column like 'M_crosoft'
匹配特殊字符:([ ]_-%)
select * from tablename where column like '%[%]%'
13.复制表结构(只复制结构,源表名: 目标表名:)
select * from into b from a where 1<>1
或
select top 0 * into [b] from [a]
14.复制表数据(复制数据,源表名: 目标表名:)
Insert into b(Name,des,num) select Name,des,num from Table1
15.编辑一个列
增加列:
alter table Table1 add username varchar(30) not null default ' '
修改列:
alter table Table1 alter column username varchar(40)
删除列:
alter table Table1 drop column username
16.修改该时间字段的小时部分
--把所有时间2006-11-1的数据23点修改为21点
update ad_Browse_20061101
set browsetime='2006-11-01 21'+
substring(convert(varchar(30),browsetime,8),3,7)
where datepart(hour,browsetime)=23