• <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)

            相冊

            最新隨筆

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            91精品国产高清久久久久久io| 久久久WWW免费人成精品| 成人久久精品一区二区三区| 一本色道久久88—综合亚洲精品| 久久久这里只有精品加勒比| 久久91精品综合国产首页| 思思久久好好热精品国产| 亚洲色欲久久久综合网| 精品久久久久中文字幕日本 | 久久国产精品77777| 夜夜亚洲天天久久| 狠狠色狠狠色综合久久| 国产亚洲欧美成人久久片| 亚洲精品乱码久久久久久中文字幕 | 人妻无码精品久久亚瑟影视 | 久久se精品一区精品二区国产| 亚洲精品无码久久不卡| 国产成人香蕉久久久久| 久久精品这里热有精品| 国产精品久久久久天天影视| 四虎国产精品免费久久| 久久久久这里只有精品 | 国产精品久久久久无码av| 久久久国产亚洲精品| 国产精品综合久久第一页| 成人妇女免费播放久久久| 久久亚洲日韩看片无码| 伊人色综合九久久天天蜜桃| 久久99毛片免费观看不卡 | 久久人搡人人玩人妻精品首页 | 合区精品久久久中文字幕一区| 亚洲伊人久久精品影院| 亚洲国产天堂久久综合| 久久久久国产| 久久露脸国产精品| 久久99精品国产麻豆不卡| 久久久久四虎国产精品| 久久综合久久久| 久久综合九色综合97_久久久| 99久久精品毛片免费播放| 久久久久人妻一区二区三区vr|