• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            精妙SQL

            ★說明:復制表(只復制結構,源表名:a 新表名:b)

            SQL: select * into b from a where 1<>1 

            ★說明:拷貝表(拷貝數據,源表名:a 目標表名:b) 

            SQL: insert into b(a, b, c) select d,e,f from b; 

            ★說明:顯示文章、提交人和最后回復時間 

            SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 

            ★說明:外連接查詢(表名1:a 表名2:b) 

            SQL: select a.f1, a.f2, a.f3, b.f3, b.f4, b.f5 from a left OUT JOIN b ON a.f1 = b.f3 (左連接)
            SQL: select a.f1, b.f2 from a FULL OUT JOIN b ON a.f1 = b.f1 (全連接)

            ★說明:日程安排提前五分鐘提醒 

            SQL: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5 

            ★說明:兩張關聯表,刪除主表中已經在副表中沒有的信息 

            SQL: 

            delete from info where not exists ( select * from infobz where info.infid=infobz.infid )

            ★說明:四表聯查問題: 

            select f1, (select min(f)-1 from t where f>f1) as f2 from
            (select f 1 as f1 from t where f 1 not in (select f from t) and f <(select max(f) from t)) as cc

            ★說明:-- 

            SQL: 

            select A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE 
            from TABLE1, 
            (select X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE 
            from (select NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND 
            from TABLE2 
            where TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X, 
            (select NUM, UPD_DATE, STOCK_ONHAND 
            from TABLE2 
            where TO_CHAR(UPD_DATE,'YYYY/MM') = 
            TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') || '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y, 
            where X.NUM = Y.NUM ( ) 
            and X.INBOUND_QTY   NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B 
            where A.NUM = B.NUM 

            ★說明:-- 

            SQL: 

            select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名稱='"&strdepartmentname&"' and 專業名稱='"&strprofessionname&"' order by 性別,生源地,高考總成績 

            ★說明: 

            從數據庫中去一年的各單位電話費統計(電話費定額賀電化肥清單兩個表來源) 

            SQL: 

            select a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') as telyear, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) as JAN, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) as FRI, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) as MAR, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) as APR, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) as MAY, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) as JUE, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) as JUL, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) as AGU, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) as SEP, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) as OCT, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) as NOV, 
            sum(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) as DEC 
            from (select a.userper, a.tel, a.standfee, b.telfeedate, b.factration 
            from TELFEESTAND a, TELFEE b 
            where a.tel = b.telfax) a 
            group by a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy'

            1.把某個字段重新生起序列(從1到n):  

             

            set IDENTITY_INSERT Table1 ON
            declare @i int
            set @i = 0
            update Table1 set @i = @i   1,Field1 = @i
            set IDENTITY_INSERT Table1 off

            2.按成績排名次
            update 成績表
            set a.名次 = (
            select count(*)   1
            from 成績表 b
            where a.總成績 < b.總成績
            )
            from 成績表 a

            3.查詢外部數據庫
            select a.*
            from OpenRowSet('Microsoft.Jet.OLEDB.4.0','c:\test.mdb';'admin';'',Table1) a

            4.查詢Excel文件
            select *
            from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";user id=Admin;Password=;Extended properties=Excel 8.0')...Sheet1$

            5.在查詢中指定排序規則
            select * from Table1 order by Field1 COLLATE Chinese_PRC_BIN
            為什么要指定排序規則呢?參見:
            http://www.zahui.com/html/8/15480.htm
            例,檢查數據庫中的Pub_Users表中是否存在指定的用戶:
            select count(*) from Pub_Users where [UserName]='admin' and [PassWord]='aaa' COLLATE Chinese_PRC_BIN
            默認比較是不區分大小寫的,如果不加COLLATE Chinese_PRC_BIN,那么密碼aaa與AAA是等效的,這當然與實際不符.注意的是,每個條件都要指定排序規則,上例中用戶名就不區分大小寫.

            6.order by的一個小技巧
            order by可以指定列序而不用指定列名,在下面的例子里說明它的用處(注意,第三列未指定別名)
            select a.id,a.Name,(select count(*) from TableB b where a.id=b.PID) from TableA a order by 3

            7.SQL簡單分頁的存儲過程    ◆常用◆◆常用◆◆常用◆◆常用◆◆常用◆
            /*
            create proc recordpages
            @nowpage int,
            @per int
            as
            declare @s nvarchar(255)
            if @nowpage<1 set @nowpage=1
            if @per<1 set @per=1
            set @s=N'declare @k int select top ' convert(varchar(10),(@nowpage-1)*@per) ' @k=id from table1
            select top ' convert(varchar(10),@per) ' * from table1 where id>@k'
            exec sp_executesql @s
            go
            */

            exec recordpages 3,10

            8:得到表中最小的未使用的id

            SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..... 

            9.得到表中自動編號列精心策劃號的起始位置

            SQL: 
            select (case when exists(select * from Handle b where b.HandleID = 1) then MIN(HandleID) + 1 else 1 end) as HandleID 
            from Handle
            where NOT HandleID in (select a.HandleID - 1 from Handle a)

            posted on 2008-01-13 00:08 李亞 閱讀(203) 評論(0)  編輯 收藏 引用 所屬分類: Sql Server

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導航

            統計

            公告

            這世界并不會在意你的自尊,這世界指望你在自我感覺良好之前先要有所成就!

            常用鏈接

            留言簿(3)

            隨筆分類(32)

            隨筆檔案(32)

            相冊

            最新隨筆

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            国产亚洲精品久久久久秋霞| 欧美精品乱码99久久蜜桃| 亚洲中文字幕久久精品无码喷水| 亚洲а∨天堂久久精品| 久久无码av三级| 97久久精品无码一区二区| 精品久久久久久无码中文字幕一区| 久久久99精品成人片中文字幕| 亚洲国产精品久久久天堂| 国产精品va久久久久久久| 麻豆久久久9性大片| 国产精品久久国产精麻豆99网站| 亚洲AV日韩AV天堂久久| 久久99精品久久久久久噜噜| 久久99热国产这有精品| 久久青草国产精品一区| 国内精品久久人妻互换| 狠狠色婷婷久久一区二区三区| 久久久久久综合网天天| 国产免费久久精品99re丫y| 亚洲а∨天堂久久精品| 狠狠综合久久综合中文88| 日本欧美国产精品第一页久久| 国产精品久久一区二区三区| 麻豆精品久久精品色综合| 国产激情久久久久影院老熟女免费 | 久久93精品国产91久久综合| 久久99热这里只有精品国产| 精品综合久久久久久888蜜芽| 伊人久久大香线蕉综合Av| 欧美日韩精品久久免费| 99久久国产宗和精品1上映| 久久久久成人精品无码 | 久久只有这里有精品4| 亚洲午夜久久久影院| 国产精品欧美久久久久天天影视| 久久黄视频| 久久国产高清字幕中文| 亚洲AV日韩精品久久久久久| 国产精品久久久久国产A级| 欧美精品福利视频一区二区三区久久久精品 |