sql高級技巧幾個有用的Sql語句
表A
字段1 | 字段2 | 字段3 |
1 | <Null> | 地段內(nèi)容1 |
1 | <Null> | 地段內(nèi)容1 |
2 | <Null> | 地段內(nèi)容2 |
2 | <Null> |
地段內(nèi)容2 |
3 | <Null> | 地段內(nèi)容3 |
4 | <Null> | 地段內(nèi)容4 |
5 | <Null> | 地段內(nèi)容5 |
5 | <Null> | 地段內(nèi)容5 |
5 | <Null> | 地段內(nèi)容5 |
6 | <Null> | 地段內(nèi)容6 |
7 | <Null> | 地段內(nèi)容7 |
8 | <Null> | 地段內(nèi)容8 |
8 | <Null> | 地段內(nèi)容8 |
8 | <Null> | 地段內(nèi)容8 |
8 | <Null> | 地段內(nèi)容8 |
表B
字段2 | 字段3 |
wdz1 | 地段內(nèi)容1 |
wdz2 | 地段內(nèi)容3 |
wdz3 | 地段內(nèi)容5 |
wdz4 | 地段內(nèi)容6 |
wdz5 | 地段內(nèi)容7 |
wdz6 | 地段內(nèi)容8 |
使用下面的Sql語句(可以達(dá)到將表A中字段3與表B中字段3相同的數(shù)據(jù)字段2填充到表A中的字段2)
update 表1 set 字段1 = (select 字段1 from 表2 where 表1.字段3=表2.字段3)
結(jié)果如下表所示
表A結(jié)果
字段1 | 字段2 | 字段3 |
1 | wdz1 | 地段內(nèi)容1 |
1 | wdz1 | 地段內(nèi)容1 |
2 | <Null> | 地段內(nèi)容2 |
2 | <Null> |
地段內(nèi)容2 |
3 | wdz2 | 地段內(nèi)容3 |
4 | <Null> | 地段內(nèi)容4 |
5 | wdz3 | 地段內(nèi)容5 |
5 | wdz3 | 地段內(nèi)容5 |
5 | wdz3 | 地段內(nèi)容5 |
6 | wdz4 | 地段內(nèi)容6 |
7 | wdz5 | 地段內(nèi)容7 |
8 | wdz6 | 地段內(nèi)容8 |
8 | wdz6 | 地段內(nèi)容8 |
8 | wdz6 | 地段內(nèi)容8 |
8 | wdz6 | 地段內(nèi)容8 |
下面是本條Sql語句的網(wǎng)友意見
一、“江千帆”
update 表1 set 字段1 = (select 字段1 from 表2 where 表1.字段3=表2.字段3)
的效率很低,如果有X條記錄,會導(dǎo)致子查詢執(zhí)行X次.
如果我們這樣寫,就可以充分利用索引(如果兩表在字段3上面都建立了索引),并且避免不必要的多次執(zhí)行。
update 表1 set 表1.字段2 =表2.字段2 from 表1 inner join 表2 on 表1.字段3=表2.字段3
網(wǎng)友意見歸納結(jié)束。
2、例如:如第1點中的表A相同,需要查詢出表A的重復(fù)數(shù)據(jù)的Sql語句如下
select 字段1 from 表A group by 字段1 having count(字段3) > 1
查詢結(jié)果如下
表A查詢結(jié)果
字段1 |
1 |
2 |
5 |
8 |
select * from OpenDataSource('VFPOLEDB.1','User ID=;DSN=;Collating Sequence=MACHINE;Data Source=C:\dbfFiles\X1.dbf;Password=;Cache Authentication=False;Mask Password=False;Mode=Share Deny None;Extended Properties=;Encrypt Password=False')...X1
注:其他的非VF數(shù)據(jù)庫文件的查詢類似,只需要設(shè)置OpenDataSource中的參數(shù)即可。參數(shù)說明為OpenDataSource(數(shù)據(jù)源驅(qū)動名,數(shù)據(jù)源連接字符串)
相關(guān)文章
比較詳細(xì)的完美解決安裝sql2000時出現(xiàn)以前的某個程序安裝已在安裝計算機上創(chuàng)建掛起的文件操作。
比較詳細(xì)的完美解決安裝sql2000時出現(xiàn)以前的某個程序安裝已在安裝計算機上創(chuàng)建掛起的文件操作。...2007-10-10sqlserver中觸發(fā)器+游標(biāo)操作實現(xiàn)
sqlserver中觸發(fā)器+游標(biāo)操作實現(xiàn),需要的朋友可以參考下2012-11-11如何在 SQL SERVER 中快速有條件刪除海量數(shù)據(jù)
如何在 SQL SERVER 中快速有條件刪除海量數(shù)據(jù)...2006-12-12SQL Server中調(diào)用C#類中的方法實例(使用.NET程序集)
這篇文章主要介紹了SQL Server中調(diào)用C#類中的方法實例(使用.NET程序集),本文實現(xiàn)了在SQL Server中調(diào)用C#寫的類及方法,需要的朋友可以參考下2014-10-10獲取SQL Server數(shù)據(jù)庫元數(shù)據(jù)的幾種方法
這篇文章主要介紹了獲取SQL Server數(shù)據(jù)庫元數(shù)據(jù)的幾種方法 ,需要的朋友可以參考下2015-08-08SQL?Server查看服務(wù)器角色的實現(xiàn)方法詳解
這篇文章主要為大家介紹了SQL?Server查看服務(wù)器角色的實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01SQLSERVER簡單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的方法
這篇文章主要介紹了SQLSERVER簡單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的方法,涉及SQLSERVER數(shù)據(jù)庫的簡單設(shè)置技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06