程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 用SQL語句查詢數據庫中某一字段下相同值的記錄方法

用SQL語句查詢數據庫中某一字段下相同值的記錄方法

編輯:關於SqlServer

今天接到一任務,有一張學生信息表(Excel表),裡面有一萬多條記錄,現在要把這張表導入到數據庫中,並設置學生學號為主鍵,但是現在這張表中的學生學號有重復的記錄,我必須先找出這些重復的記錄,然後再進行篩選,經過研究問題終於得到解決。 
    以上問題實際上就是查詢數據庫表中某一字段值重復的記錄,這裡省略如何將Excel表導入到數據庫步驟,只討論用SQL查詢數據庫中某一字段下相同值的記錄方法。 

    現在假設數據庫表名為student,裡面有字段Sno(學號),ID(身份證),這裡提供兩種查詢的方法: 

方法一:通過學號和身份證字段來查詢(數據庫執行效率高,推薦)

復制代碼 代碼如下:
    SELECT * 
    FROM student AS A 
    WHERE (Sno IN (SELECT Sno FROM student AS B WHERE A.ID <> B.ID))

方法二:只通過學號字段來查詢(數據庫執行效率低,不推薦)

復制代碼 代碼如下:
    SELECT * 
    FROM student AS A 
    WHERE (SELECT COUNT(*) FROM student WHERE Sno=A.Sno)>1

    從運行結果來看,方法一和方法二相同,但是執行效率完全不同,方法一執行一萬多條數據只需要幾秒鐘即可,方法二則需要好幾分鐘,而且還有死機現象。不知道還有沒有其他方法,如果有高手知道請指教!!!

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved