常用SQL語句(嵌套子查詢/隨機(jī)等等)詳細(xì)整理
更新時(shí)間:2013年01月24日 16:29:57 作者:
本文整理了一些常用的sql語句:插入語句得到自動(dòng)生成的遞增ID值實(shí)現(xiàn)是1 或0 想顯示為男或女/嵌套子查詢/顯示文章、提交人和最后回復(fù)時(shí)間/隨機(jī)提取條記錄的例子等等太多了就不一一講了,感興趣的朋友可以聊接下
1.SQL 插入語句得到自動(dòng)生成的遞增ID值
insert into Table1(Name,des,num) values ('ltp','thisisbest',10);
select @@identity as 'Id'
2.實(shí)現(xiàn)是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.顯示文章、提交人和最后回復(fù)時(shí)間
select a.title,a.username,b.adddate from tablename a,(select max(adddate) adddate from tablename where tablename.title=a.title) b
5.隨機(jī)提取條記錄的例子
SQL Server:Select Top 10 * From Tablename Order By NewID()
Access:Select Top 10 * From Tablename Order By Rnd(ID)
Rnd(ID) 其中的ID 是自動(dòng)編號字段,可以利用其他任何數(shù)值來完成,比如用姓名字段UserName
Select Top 10 * From 表Order BY Rnd(Len(UserName))
MySql:Select * From 表Order By Rand() Limit 10
6.在同一表內(nèi)找相同屬性的記錄
select UserID from Accounts_Users where UserName is not null group by UserID having count (*)>1
7.查詢類別所有的產(chǎn)品對應(yīng)數(shù)據(jù)
SELECT CategoryName,ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
8.按范圍查詢編號在2 到5 之間的用戶信息
select * from UserValue where UserID between 2 and 5;
9.日程安排提前5 分鐘提醒
Select * from TabSchedule where datediff(minute,getdate(),開始時(shí)間)<5
10.得出某日期所在月份的最大天數(shù)
SELECT DAY(DATEADD(dd, -DAY('2008-02-13'),DATEADD(mm, 1, '2008-02-13'))) AS 'DayNumber'
11.按姓氏筆畫排序
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as
12.通配符的一些用法
1.select * from tablename where column1 like '[A-M]%' 這樣可以選擇出column 字段中首字母在A-M 之間的記錄
2.select * from tablename where column1 like '[ABC]%' 這樣可以選擇出column 字段中首字母是A 或者B 或者C 的記錄
3.select * from tablename where column1 like '[A-CG]%' 這樣可以選擇出column 字段中首字母在A-C 之間的或者是G 的記錄
4.select * from tablename where column1 like '[^C]%' 這樣可以選擇出column 字段中首字母不是C 的記錄
13.復(fù)制表結(jié)構(gòu)(只復(fù)制結(jié)構(gòu),源表名:a,目標(biāo)表名:b)
select * into b from a where 1<>1 或 select top 0 * into [b] from [a]
14.復(fù)制表數(shù)據(jù)(復(fù)制數(shù)據(jù),源表名:a,目標(biāo)表名:b)
insert into b(Name,des,num) select Name,des,num from Table1;
復(fù)制代碼 代碼如下:
insert into Table1(Name,des,num) values ('ltp','thisisbest',10);
select @@identity as 'Id'
2.實(shí)現(xiàn)是1 或0 想顯示為男或女
復(fù)制代碼 代碼如下:
select name,Sex=(case Sex when '1' then '男' when '0' then '女' end) from Tablename
3.嵌套子查詢
復(fù)制代碼 代碼如下:
select a,b,c from Table1 where a IN (select a from Table2)
4.顯示文章、提交人和最后回復(fù)時(shí)間
復(fù)制代碼 代碼如下:
select a.title,a.username,b.adddate from tablename a,(select max(adddate) adddate from tablename where tablename.title=a.title) b
5.隨機(jī)提取條記錄的例子
復(fù)制代碼 代碼如下:
SQL Server:Select Top 10 * From Tablename Order By NewID()
Access:Select Top 10 * From Tablename Order By Rnd(ID)
Rnd(ID) 其中的ID 是自動(dòng)編號字段,可以利用其他任何數(shù)值來完成,比如用姓名字段UserName
Select Top 10 * From 表Order BY Rnd(Len(UserName))
MySql:Select * From 表Order By Rand() Limit 10
6.在同一表內(nèi)找相同屬性的記錄
復(fù)制代碼 代碼如下:
select UserID from Accounts_Users where UserName is not null group by UserID having count (*)>1
7.查詢類別所有的產(chǎn)品對應(yīng)數(shù)據(jù)
復(fù)制代碼 代碼如下:
SELECT CategoryName,ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
8.按范圍查詢編號在2 到5 之間的用戶信息
復(fù)制代碼 代碼如下:
select * from UserValue where UserID between 2 and 5;
9.日程安排提前5 分鐘提醒
復(fù)制代碼 代碼如下:
Select * from TabSchedule where datediff(minute,getdate(),開始時(shí)間)<5
10.得出某日期所在月份的最大天數(shù)
復(fù)制代碼 代碼如下:
SELECT DAY(DATEADD(dd, -DAY('2008-02-13'),DATEADD(mm, 1, '2008-02-13'))) AS 'DayNumber'
11.按姓氏筆畫排序
復(fù)制代碼 代碼如下:
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as
12.通配符的一些用法
復(fù)制代碼 代碼如下:
1.select * from tablename where column1 like '[A-M]%' 這樣可以選擇出column 字段中首字母在A-M 之間的記錄
2.select * from tablename where column1 like '[ABC]%' 這樣可以選擇出column 字段中首字母是A 或者B 或者C 的記錄
3.select * from tablename where column1 like '[A-CG]%' 這樣可以選擇出column 字段中首字母在A-C 之間的或者是G 的記錄
4.select * from tablename where column1 like '[^C]%' 這樣可以選擇出column 字段中首字母不是C 的記錄
13.復(fù)制表結(jié)構(gòu)(只復(fù)制結(jié)構(gòu),源表名:a,目標(biāo)表名:b)
復(fù)制代碼 代碼如下:
select * into b from a where 1<>1 或 select top 0 * into [b] from [a]
14.復(fù)制表數(shù)據(jù)(復(fù)制數(shù)據(jù),源表名:a,目標(biāo)表名:b)
復(fù)制代碼 代碼如下:
insert into b(Name,des,num) select Name,des,num from Table1;
相關(guān)文章
SQL高級應(yīng)用之同服務(wù)器上復(fù)制表到另一數(shù)據(jù)庫中并實(shí)現(xiàn)去重復(fù)
項(xiàng)目需求:將數(shù)據(jù)庫Whir_ezMall_Full中的表Whir_Member的數(shù)據(jù)遷移到數(shù)據(jù)庫Whir_ezMall_Full_c中的Whir_Member表,已存在的ID記錄則不插入2014-06-06SQL?Server新特性SequenceNumber用法介紹
這篇文章介紹了SQL?Server新特性SequenceNumber的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02SQL?server數(shù)據(jù)庫日志文件收縮操作方法
日常使用數(shù)據(jù)庫可能存在日志每天增長10G或以上,太恐怖了!數(shù)據(jù)量過大導(dǎo)致服務(wù)器卡死,內(nèi)存溢出,執(zhí)行Sql過慢等問題,這篇文章主要給大家介紹了關(guān)于SQL?server數(shù)據(jù)庫日志文件收縮操作的相關(guān)資料,需要的朋友可以參考下2024-02-02sqlserver/mysql按天、按小時(shí)、按分鐘統(tǒng)計(jì)連續(xù)時(shí)間段數(shù)據(jù)【推薦】
最近小編接到這樣的需求,公司需要按天,按小時(shí)查看數(shù)據(jù),可以直觀的看到時(shí)間段的數(shù)據(jù)峰值。這篇文章主要介紹了sqlserver/mysql按天,按小時(shí),按分鐘統(tǒng)計(jì)連續(xù)時(shí)間段數(shù)據(jù) ,需要的朋友可以參考下2019-06-06詳解SQL Server表和索引存儲結(jié)構(gòu)
這篇文章主要介紹了詳解SQL Server表和索引存儲結(jié)構(gòu),有助于大家對SQL存儲方式有深入的理解,參考學(xué)習(xí)下吧。2017-11-11