<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-71  評論-5  文章-0  trackbacks-0
        ROW_NUMBER()幫助更好的限制結果集行數的功能)
       (ROW_NUMBER()函數可以計算每一行數據在結果集中的行號(從1開始計數))

       select ROW_NUMBER() OVER(order by FSalary),FNumber,FName,FSalary,FAge from T_Employee

         開窗函數只能出現在 SELECT 或 ORDER BY 子句中::也就是說ROW_NUMBER()不能用在WHERE語句中.

        select * from (select row_number()over(order by fsalary desc)as rownum,fname,fname,fsalary,fage from t_employee) as a where a.rownum>=3 and a.rownum<=5


           MSSQLServer 2000(提 供 了 TOP 關 鍵 字 用來 返回 結 果 集 中的 前 N條 記錄)

        select top 5 * from T_Employee order by FSalary Desc    表示:按照工資降序排列的前五條記錄

    檢索工資水平排在前五位(按照工資從高到低)的員工信息.
        SELECT top 3 * FROM T_Employee WHERE FNumber NOT IN(SELECT TOP 5 FNumber FROM T_Employee ORDER BY FSalary DESC)ORDER BY FSalary DESC

           Oracle(Oracle中支持窗口函數ROW_NUMBER(),其用法和MSSQLServer2005中相同),不過oracle提供了更方便的特性,用來計算行號
           oracle為每個結果集都默認增加了一個默認的表示行號的列,這個列的名稱為rownum(從1開始計數)       

         SELECT * FROM T_Employee WHERE rownum<=6 ORDER BY FSalary Desc

            當進行檢索的時候,對于第一條數據,其rownum為1,因為符合“WHERE rownum<=6”所以被放到了檢索結果中;當檢索到第二條數據的時候,其rownum為2,因為符合“WHERE                          rownum<=6”所以被放到了檢索結果中……依次類推,直到第七行。

              ---這是錯誤的代碼 SELECT rownum,FNumber,FName,FSalary,FAge FROM T_Employee WHERE rownum BETWEEN 3 AND 5 ORDER BY FSalary DESC

            當進行檢索的時候,對于第一條數據,其rownum為1,因為不符合“WHERE rownumBETWEEN 3 AND 5”,所以沒有被放到了檢索結果中;當檢索到第二條數據的時候,因為第
    一條數據沒有放到結果集中,所以第二條數據的rownum仍然為1,而不是我們想像的2,所以因為不符合“WHERE rownum<=6”,沒有被放到了檢索結果中;當檢索到第三條數據的時候,
    因為第一、二條數據沒有放到結果集中,所以第三條數據的rownum仍然為1,而不是我們想像的3,所以因為不符合“WHERE rownum<=6”,沒有被放到了檢索結果中……


             
    DB2也支持row_number(),語法跟mssql和oracle一樣,還提供了fetch關鍵字用來提取前N行..語法為:fetch first 條數 rows only

    select * from t_employee order by fsalary desc fetch first 6 rows only --必須注意:fetch字句要放在order by語句后面






            

    1. _(單個通配符)
      SELECT * FROM T_ Employee WHERE FName LIKE '_erry'

      以任意字符開頭,剩余部分為“erry"

    2. 要檢索長度為4、第3個字符為“n ",其他字符為任意字符
      SELECT * FROM T_ Employee WHERE FName LIKE,'__n_'
    3. %(多字通配符)
      SELECT * FROM T_ Employee WHERE FName LIKE’T%’

      以“T”開頭,長度任意。

    4. 姓名中包含字母"n”的員工信息
      SELECT * FROM T_ Employee WHERE FName LIKE’%n%’
    5. 單字符匹配和多字符匹配還可以一起使用。

      SELECT * FROM T_ Employee WHERE FName LIKE’%n_'

      上面表示:最后一個字符為任意字符、倒數第_個字符為“n " ,長度任意的字符串。

    6. 集合匹配[](表示匹配集合中的任意一個)(只有MSSQLServer支持)
      SELECT * FROM T_Employee WHERE FName LIKE '[SJ]%'

      上面代表:以“S”或者“J“開頭長度,長度任意

    7. 否定符"^"(用來對集合取反)(只有MSSQLServer支持)
      SELECT * FROM T_Employee WHERE FName LIKE '[^SJ]%'




    posted on 2014-10-29 14:28 藤本薔薇 閱讀(3248) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲a一级免费视频| 久草视频在线免费看| 成人免费视频一区二区三区| 亚洲欧洲另类春色校园小说| aⅴ在线免费观看| 男人天堂2018亚洲男人天堂| 成人a免费α片在线视频网站| 学生妹亚洲一区二区| 在线不卡免费视频| 疯狂做受xxxx高潮视频免费| 无码专区一va亚洲v专区在线| 一个人晚上在线观看的免费视频| 亚洲一区爱区精品无码| 久久久久久成人毛片免费看| 亚洲毛片免费视频| 狠狠久久永久免费观看| 牛牛在线精品免费视频观看| 在线观看亚洲av每日更新| 青青操免费在线视频| 亚洲高清中文字幕| 青青草国产免费久久久91| 特级毛片爽www免费版| 亚洲s色大片在线观看| 一级女人18毛片免费| 精品久久亚洲一级α| 亚洲色欲久久久综合网东京热| 99精品一区二区免费视频| 中文字幕乱码亚洲精品一区| 亚洲欧洲日产国码一级毛片| 99精品视频在线视频免费观看 | 亚洲精品永久在线观看| 又粗又大又猛又爽免费视频| 在线看片免费人成视频播| 精品亚洲AV无码一区二区| 免费一级毛片免费播放| 毛片在线全部免费观看| 亚洲一线产品二线产品| 亚洲精品你懂的在线观看| 97热久久免费频精品99| 一级视频在线免费观看| 亚洲精品国产啊女成拍色拍|