• <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 李亞 閱讀(211) 評論(0)  編輯 收藏 引用 所屬分類: Sql Server

            <2008年1月>
            303112345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            公告

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

            常用鏈接

            留言簿(3)

            隨筆分類(32)

            隨筆檔案(32)

            相冊

            最新隨筆

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            国产午夜福利精品久久| 久久免费视频一区| 久久九九精品99国产精品| 九九久久自然熟的香蕉图片| 国内精品九九久久久精品| 国产精自产拍久久久久久蜜| 久久久久久久91精品免费观看| 天堂久久天堂AV色综合| 久久国产精品-久久精品| 亚洲欧美成人久久综合中文网| 国产精品一久久香蕉国产线看观看| 青青热久久综合网伊人| 99蜜桃臀久久久欧美精品网站| 国产精品对白刺激久久久| 一级做a爰片久久毛片看看| 国产99精品久久| 精品一二三区久久aaa片| 精品99久久aaa一级毛片| 久久精品人成免费| 奇米影视7777久久精品人人爽| 7国产欧美日韩综合天堂中文久久久久 | 久久久久亚洲国产| 亚洲精品高清久久| 97久久精品国产精品青草| 久久亚洲sm情趣捆绑调教| 亚洲成av人片不卡无码久久 | 国产精品99久久久久久www| 精品多毛少妇人妻AV免费久久| 久久福利片| 久久国产成人| 欧美久久天天综合香蕉伊| 精品无码久久久久久国产| 精品久久久久中文字幕一区| 久久青草国产精品一区| 久久99精品国产麻豆宅宅| 九九久久99综合一区二区| 色偷偷888欧美精品久久久| 丰满少妇人妻久久久久久4| 日韩精品久久久久久| 99精品久久久久久久婷婷| 久久强奷乱码老熟女|