用SQL語句查詢數(shù)據(jù)庫中某一字段下相同值的記錄方法
今天接到一任務(wù),有一張學(xué)生信息表(Excel表),里面有一萬多條記錄,現(xiàn)在要把這張表導(dǎo)入到數(shù)據(jù)庫中,并設(shè)置學(xué)生學(xué)號為主鍵,但是現(xiàn)在這張表中的學(xué)生學(xué)號有重復(fù)的記錄,我必須先找出這些重復(fù)的記錄,然后再進行篩選,經(jīng)過研究問題終于得到解決。
以上問題實際上就是查詢數(shù)據(jù)庫表中某一字段值重復(fù)的記錄,這里省略如何將Excel表導(dǎo)入到數(shù)據(jù)庫步驟,只討論用SQL查詢數(shù)據(jù)庫中某一字段下相同值的記錄方法。
現(xiàn)在假設(shè)數(shù)據(jù)庫表名為student,里面有字段Sno(學(xué)號),ID(身份證),這里提供兩種查詢的方法:
方法一:通過學(xué)號和身份證字段來查詢(數(shù)據(jù)庫執(zhí)行效率高,推薦)
SELECT *
FROM student AS A
WHERE (Sno IN (SELECT Sno FROM student AS B WHERE A.ID <> B.ID))
方法二:只通過學(xué)號字段來查詢(數(shù)據(jù)庫執(zhí)行效率低,不推薦)
SELECT *
FROM student AS A
WHERE (SELECT COUNT(*) FROM student WHERE Sno=A.Sno)>1
從運行結(jié)果來看,方法一和方法二相同,但是執(zhí)行效率完全不同,方法一執(zhí)行一萬多條數(shù)據(jù)只需要幾秒鐘即可,方法二則需要好幾分鐘,而且還有死機現(xiàn)象。不知道還有沒有其他方法,如果有高手知道請指教!??!
- MySQL查詢本周、上周、本月、上個月份數(shù)據(jù)的sql代碼
- SQLSERVER查詢所有數(shù)據(jù)庫名,表名,和字段名的語句
- mysql隨機查詢?nèi)舾蓷l數(shù)據(jù)的方法
- mysql查詢昨天 一周前 一月前 一年前的數(shù)據(jù)
- mysql 查詢數(shù)據(jù)庫中的存儲過程與函數(shù)的語句
- asp.net連接查詢SQL數(shù)據(jù)庫并把結(jié)果顯示在網(wǎng)頁上(2種方法)
- php基礎(chǔ)之連接mysql數(shù)據(jù)庫和查詢數(shù)據(jù)
- oracle,mysql,SqlServer三種數(shù)據(jù)庫的分頁查詢的實例
- Oracle 數(shù)據(jù)庫連接查詢SQL語句
- 通過sql準(zhǔn)確查出一天數(shù)據(jù)的方法
相關(guān)文章
sql not in 與not exists使用中的細微差別
用的時候我們只注重查詢的效率,但卻往往會忽略一下比較細小的區(qū)別2013-02-02
SQL Server中對數(shù)據(jù)截取替換的方法詳解
本文主要介紹了SQL Server中對數(shù)據(jù)截取替換的方法。具有很好的參考價值。下面跟著小編一起來看下吧2017-03-03
sql server性能調(diào)優(yōu) I/O開銷的深入解析
這篇文章主要給大家介紹了關(guān)于sql server性能調(diào)優(yōu) I/O開銷的相關(guān)資料,文中通過示例代碼以及圖片介紹的非常詳細,對大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
SQL Server中使用sp_password重置SA密碼實例
這篇文章主要介紹了SQL Server中使用sp_password重置SA密碼實例,一般在忘記SA密碼時的恢復(fù)手段,需要的朋友可以參考下2014-08-08
SQLServer:探討EXEC與sp_executesql的區(qū)別詳解
本篇文章是對EXEC與sp_executesql的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-06-06
sqlserver數(shù)據(jù)庫出現(xiàn)置疑的解決思路
首先新建一個同名的數(shù)據(jù)庫,然后再停掉sql server服務(wù),用原數(shù)據(jù)庫的數(shù)據(jù)文件覆蓋掉這個新建的數(shù)據(jù)庫文件,重啟sql server服務(wù)。感興趣的朋友可以參考下哈,希望可以幫助到你2013-03-03

