sql高級(jí)技巧幾個(gè)有用的Sql語(yǔ)句
表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語(yǔ)句(可以達(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語(yǔ)句的網(wǎng)友意見(jiàn)
一、“江千帆”
update 表1 set 字段1 = (select 字段1 from 表2 where 表1.字段3=表2.字段3)
的效率很低,如果有X條記錄,會(huì)導(dǎo)致子查詢執(zhí)行X次.
如果我們這樣寫(xiě),就可以充分利用索引(如果兩表在字段3上面都建立了索引),并且避免不必要的多次執(zhí)行。
update 表1 set 表1.字段2 =表2.字段2 from 表1 inner join 表2 on 表1.字段3=表2.字段3
網(wǎng)友意見(jiàn)歸納結(jié)束。
2、例如:如第1點(diǎn)中的表A相同,需要查詢出表A的重復(fù)數(shù)據(jù)的Sql語(yǔ)句如下
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ù)庫(kù)文件的查詢類似,只需要設(shè)置OpenDataSource中的參數(shù)即可。參數(shù)說(shuō)明為OpenDataSource(數(shù)據(jù)源驅(qū)動(dòng)名,數(shù)據(jù)源連接字符串)
相關(guān)文章
比較詳細(xì)的完美解決安裝sql2000時(shí)出現(xiàn)以前的某個(gè)程序安裝已在安裝計(jì)算機(jī)上創(chuàng)建掛起的文件操作。
比較詳細(xì)的完美解決安裝sql2000時(shí)出現(xiàn)以前的某個(gè)程序安裝已在安裝計(jì)算機(jī)上創(chuàng)建掛起的文件操作。...2007-10-10sqlserver中觸發(fā)器+游標(biāo)操作實(shí)現(xiàn)
sqlserver中觸發(fā)器+游標(biāo)操作實(shí)現(xiàn),需要的朋友可以參考下2012-11-11如何在 SQL SERVER 中快速有條件刪除海量數(shù)據(jù)
如何在 SQL SERVER 中快速有條件刪除海量數(shù)據(jù)...2006-12-12SQL Server中調(diào)用C#類中的方法實(shí)例(使用.NET程序集)
這篇文章主要介紹了SQL Server中調(diào)用C#類中的方法實(shí)例(使用.NET程序集),本文實(shí)現(xiàn)了在SQL Server中調(diào)用C#寫(xiě)的類及方法,需要的朋友可以參考下2014-10-10獲取SQL Server數(shù)據(jù)庫(kù)元數(shù)據(jù)的幾種方法
這篇文章主要介紹了獲取SQL Server數(shù)據(jù)庫(kù)元數(shù)據(jù)的幾種方法 ,需要的朋友可以參考下2015-08-08使用SQL批量替換語(yǔ)句修改、增加、刪除字段內(nèi)容
sql替換語(yǔ)句,用該命令可以整批替換某字段的內(nèi)容,也可以批量在原字段內(nèi)容上加上或去掉字符。本文給大家介紹使用SQL批量替換語(yǔ)句修改、增加、刪除字段內(nèi)容的知識(shí),非常不錯(cuò),感興趣的朋友一起學(xué)習(xí)吧2016-08-08SQL?Server查看服務(wù)器角色的實(shí)現(xiàn)方法詳解
這篇文章主要為大家介紹了SQL?Server查看服務(wù)器角色的實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01SQLSERVER簡(jiǎn)單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了SQLSERVER簡(jiǎn)單創(chuàng)建DBLINK操作遠(yuǎn)程服務(wù)器數(shù)據(jù)庫(kù)的方法,涉及SQLSERVER數(shù)據(jù)庫(kù)的簡(jiǎn)單設(shè)置技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06sql導(dǎo)入.back文件的實(shí)現(xiàn)
本文主要介紹了sql導(dǎo)入.back文件的實(shí)現(xiàn),.back文件是一種備份文件,其中包含了數(shù)據(jù)庫(kù)的結(jié)構(gòu)和數(shù)據(jù),然后通過(guò)執(zhí)行一系列的SQL命令,可以還原備份文件到數(shù)據(jù)庫(kù)中,感興趣的可以了解一下2023-11-11