常用经典SQL语句
1.随机提取条记录的例子
SQL Server:Select Top 10 * From Tablename Order By NewID()
Access:Select Top 10 * From Tablename Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,
比如用姓名字段UserName
Select Top 10 * From 表Order BY Rnd(Len(UserName))
MySql:Select * From 表Order By Rand() Limit 10
2.在同一表内找相同属性的记录
select UserID from Accounts_Users
where UserName is not null
group by UserID
having count (*)>1
3.日程安排提前5分钟提醒
Select * from TabSchedule where datediff(minute,getdate(),开始时间)<5
4.得出某日期所在月份的最大天数
SELECT DAY(DATEADD(dd, -DAY('2008-02-13'),DATEADD(mm, 1,
'2008-02-13'))) AS 'DayNumber'
5.按姓氏笔画排序
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_CI_AS
PRC:中华人民共和国
Stroke:笔划
CI:不区分大小写 CS:区分大小写
AI:不区分重音 AS:区分重音
KS: 区分假名类型
WS:区分宽度
6.通配符的一些用法
①.select * from tablename where column1 like '[A-M]%'
这样可以选择出column字段中首字母在A-M之间的记录
②.select * from tablename where column1 like '[ABC]%'
这样可以选择出column字段中首字母是A或者B或者C的记录
③.select * from tablename where column1 like '[A-CG]%'
这样可以选择出column字段中首字母在A-C之间的或者是G的记录
④.select * from tablename where column1 like '[^C]%'
这样可以选择出column字段中首字母不是C的记录
⑤.单字符(关键字:like _):
通过使用下滑线字符(_),可以匹配任意单个字符
select * from tablename where column1 like 'M_crosoft'
⑥.匹配特殊字符:([ ] _ - %)
把它们都放到[]中就行了,比如:
select * from tablename where column1 like '%[%]%'
7.复制表结构(只复制结构,源表名:a,目标表名:b)
select * into b from a where 1<>1
或
select top 0 * into [b] from [a]
8.复制表数据(复制数据,源表名:a,目标表名:b)
insert into b(Name,des,num) select Name,des,num from Table1;
注:
select into from 语句也可复制数据,但要求目标表不存在,因为在插入时会自动创建
9.编辑一个列
增加列: alter table Table1 add username varchar(30) not null default ''
修改列: alter table Table1 alter column username varchar(40)
删除列: alter table Table1 drop column username
10.修改时间字段的小时部分
--把所有时间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
浙公网安备 33010602011771号