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

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

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

    啪啪拉拉噼里啪啦

    初學者天堂資料匯集

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      16 隨筆 :: 73 文章 :: 16 評論 :: 0 Trackbacks
    字符串函數(一)
    作者:unknown 更新時間:2005-03-17  
     


    字符串函數對二進制數據、字符串和表達式執行不同的運算。此類函數作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 數據類型以及可以隱式轉換為CHAR 或VARCHAR的數據類型。可以在SELECT 語句的SELECT 和WHERE 子句以及表達式中使用字符串函數。常用的字符串函數有:

    1、字符轉換函數
    有以下幾種字符轉換函數:
    ·ASCII()
    ASCII() 函數返回字符表達式最左端字符的ASCII 碼值。ASCII() 函數語法如下:


      例4-40:



    提醒:在ASCII()函數中,純數字的字符串可不用‘’括起來,但含其它字符的字符串必須用‘’括起來使用,否則會出錯。

    ·CHAR()
    CHAR() 函數用于將ASCII 碼轉換為字符。其語法如下:

    如果沒有輸入0 ~ 255 之間的ASCII 碼值,CHAR() 函數會返回一個NULL 值。

      例4-41:


    ·LOWER()
    LOWER() 函數把字符串全部轉換為小寫,其語法如下:
       

      例4-42:


    ·UPPER()
    UPPER() 函數把字符串全部轉換為大寫,其語法如下:
     

      例4-43:


    ·STR()
    STR() 函數把數值型數據轉換為字符型數據,其語法如下:
    STR (<float _expression>[,length[, <decimal>]])
      自變量length 和decimal 必須是非負值,length 指定返回的字符串的長度,decimal 指定返回的小數位數。如果沒有指定長度,缺省的length 值為10, decimal 缺省值為0。 小數位數大于decimal 值時,STR() 函數將其下一位四舍五入。指定長度應大于或等于數字的符號位數+小數點前的位數+小數點位數+小數點后的位數。如果<float _expression>小數點前的位數超過了指定的長度,則返回指定長度的“*”。

      例4-44:


    2、去空格函數
    去空格函數有如下兩種:
    ·LTRIM()
    LTRIM() 函數把字符串頭部的空格去掉,其語法如下:
      LTRIM (<character _expression>)

      例4-45:


    ·RTRIM()
    RTRIM() 函數把字符串尾部的空格去掉,其語法如下:
      RTRIM (<character _expression>)

      例4-46:


    提示:在許多情況下,往往需要得到頭部和尾部都沒有空格字符的字符串,這時可將上兩個函數嵌套使用。

      例4-47:


    3、取子串函數
    取子串函數如下所示:
    ·LEFT()
    LEFT() 函數返回部分字符串,其語法如下:
      LEFT (<character_expression>, <integer_expression>)
      LEFT() 函數返回的子串是從字符串最左邊起到第integer_expression 個字符的部分。若integer_expression 為負值,則返回NULL 值。

      例4-48:


    ·RIGHT()
    RIGHT() 函數返回部分字符串,其語法如下:
      RIGHT (<character_expression>, <integer_expression>)
      RIGHT() 函數返回的子串是從字符串右邊第integer_expression 個字符起到最后一個字符的部分。若integer_expression 為負值,則返回NULL 值。

      例4-49:


    ·SUBSTRING()
    SUBSTRING() 函數返回部分字符串,其語法如下:
      SUBSTRING (<expression>, <starting_ position>, length)
      SUBSTRING() 函數返回的子串是從字符串左邊第starting_ position 個字符起length個字符的部分。其中表達式可以是字符串或二進制串或含字段名的表達式。SUBSTRING()函數不能用于TEXT 和IMAGE 數據類型。

      例4-50:


    4、字符串比較函數
    字符串比較函數如下所示:
    ·CHARINDEX()
    CHARINDEX() 函數返回字符串中某個指定的子串出現的開始位置,其語法如下:
      CHARINDEX (<’substring_expression’>, <expression>)
      其中substring _expression 是所要查找的字符表達式,expression 可為字符串也可為列名表達式。如果沒有發現子串,則返回0 值。此函數不能用于TEXT 和IMAGE 數據類型。

      例4-51:


      例4-52:


    ·PATINDEX()
    PATINDEX() 函數返回字符串中某個指定的子串出現的開始位置,其語法如下:
      PATINDEX (<’%substring _expression%’>, <column_ name>)
      其中子串表達式前后必須有百分號“%”否則返回值為0。

      例4-53:


      與CHARINDEX() 函數不同的是,PATINDEX() 函數的子串中可以使用通配符,且此函數可用于CHAR、 VARCHAR 和TEXT 數據類型。

      例4-54:


    ·SOUNDEX()
    SOUNDEX() 函數返回一個四位字符碼,其語法如下:
      SOUNDEX (<character _expression>)
      SOUNDEX() 函數將character _expression 轉換為4 個字符的聲音碼。其中第一個碼為原字符串的第一個字符,第二到第四個字符則為數字,是該字符串的聲音字母所對應的數字,但是忽略了除首字母外的串中的所有元音字母 。SOUNDEX() 函數可用來查找聲音相似的字符串。但SOUNDEX 函數對數字和漢字均只返回0 值。

      例4-55:


    ·DIFFERENCE()
    DIFFERENCE() 函數返回由SOUNDEX() 函數返回的兩個字符表達式的值的差異。其語法如下:
      DIFFERENCE (<character_expression1>, <character_expression2>)
      值的差異是用0、 1、 2、 3、 4 來表示的,含義如下:
      0--兩個SOUNDEX() 函數返回值的第一個字符不同
      1--兩個SOUNDEX() 函數返回值的第一個字符相同
      2--兩個SOUNDEX() 函數返回值的第一、二個字符相同
      3--兩個SOUNDEX() 函數返回值的第一、二、三個字符相同
      4--兩個SOUNDEX() 函數返回值完全相同

      例4-56:


    5、字符串操作函數
    字符串操作函數如下所示:
    ·QUOTENAME()
    QUOTENAME() 函數返回被特定字符括起來的字符串,其語法如下:
    QUOTENAME (<’character_expression’>[, quote_ character])
    其中quote_ character 標明括字符串所用的字符,如“‘”、“(”、“[” 等,缺省值為“[]”

      例4-57:


    ·REPLICATE()
    REPLICATE() 函數返回一個重復character_expression 指定次數的字符串,其語法如下:
    REPLICATE (character_expression integer_expression)
    如果integer_expression 值為負值,則REPLICATE() 函數返回NULL 串。

      例4-58:


    ·REVERSE()
    REVERSE() 函數將指定的字符串的字符排列順序顛倒,其語法如下:
    REVERSE (<character_expression>)
    其中character_expression 可以是字符串、常數或一個列的值。

      例4-59:


    ·REPLACE()
    REPLACE() 函數返回被替換了指定子串的字符串,其語法如下:
    REPLACE (<string_expression1>, <string_expression2>, <string_expression3>)
    REPLACE() 函數用string_expression3 替換在string_expression1 中的子串string_expression2。

      例4-60:


    ·SPACE()
    SPACE() 函數返回一個有指定長度的空白字符串,其語法如下:
    SPACE (<integer_expression>)
    如果integer_expression 值為負值,則SPACE() 函數返回NULL 串。

      例4-61:


    ·STUFF()
    STUF()函數用另一子串替換字符串指定位置、長度的子串,其語法如下:
    STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>)
    如果起始位置為負或長度值為負,或者起始位置大于character_expression1 的長度,則STUFF() 函數返回NULL 值。如果length 長度大于character_expression1 的長度,則character_expression1 只保留首字符。

      例4-62:


    6、數據類型轉換函數
    在一般情況下,SQL Server 會自動完成數據類型的轉換,例如,可以直接將字符數據類型或表達式與DATATIME 數據類型或表達式比較當表達式中用了INTEGER、 SMALLINT或TINYINT 時,SQL Server 也可將INTEGER 數據類型或表達式轉換為SMALLINT數據類型或表達式,這稱為隱式轉換。如果不能確定SQL Server 是否能完成隱式轉換或者使用了不能隱式轉換的其它數據類型,就需要使用數據類型轉換函數做顯式轉換了。此類函數有兩個:
    ·CAST()
    CAST() 函數語法如下:
    CAST (<expression> AS <data_ type>[ length ])

    ·CONVERT()
    CONVERT() 函數語法如下:
    CONVERT (<data_ type>[ length ], <expression> [, style])

    提醒: 1、data_type為SQL Server系統定義的數據類型,用戶自定義的數據類型不能在此使用。
    2、length用于指定數據的長度,缺省值為30。
    3、把CHAR或VARCHAR類型轉換為諸如INT或SAMLLINT這樣的INTEGER類型、結果必須是帶正號(+)或負號(-)的數值。
    4、TEXT類型到CHAR或VARCHAR類型轉換最多為8000個字符,即CHAR或VARCHAR數據類型是最大長度。
    5、IMAGE類型存儲的數據轉換到BINARY或VARBINARY類型,最多為8000個字符。
    6、把整數值轉換為MONEY或SMALLMONEY類型,按定義的國家的貨幣單位來處理,如人民幣、美元、英鎊等。
    7、BIT類型的轉換把非零值轉換為1,并仍以BIT類型存儲。
    8、試圖轉換到不同長度的數據類型,會截短轉換值并在轉換值后顯示“+”,以標識發生了這種截斷。

      例4-63:


      例4-64:


      例4-65:



    用CONVERT() 函數的style 選項能以不同的格式顯示日期和時間。style 是將DATATIME 和SMALLDATETIME 數據轉換為字符串時所選用的由SQL Server 系統提供的轉換樣式編號,不同的樣式編號有不同的輸出格式。如表4-8 所示。


      例4-66:


    7、日期函數
    日期函數用來操作DATETIME 和SMALLDATETIME 類型的數據,執行算術運算。與其它函數一樣,可以在SELECT 語句的SELECT 和WHERE 子句以及表達式中使用日期函數。其使用方法如下:
     日期函數參數,其中參數個數應不同的函數而不同。

    ·DAY()
    DAY() 函數語法如下:
    DAY (<date_expression>)
    DAY() 函數返回date_expression 中的日期值。

      例4-67:


    在上例中,DAY() 函數使用整數值作參數,系統從1900 年1 月1 日起往后數指定整數值+1, 天再返回其日期。

    ·MONTH()
    MONTH() 函數語法如下:
    MONTH (<date_expression>)
    MONTH() 函數返回date_expression 中的月份值。

      例4-68:


    與DAY() 函數不同的是,MONTH() 函數的參數為整數時,一律返回整數值1,即SQL Server 認為其是1900 年1 月。

      例4-69:


    ·YEAR()
    YEAR() 函數語法如下:
    YEAR (<date_expression>)
    YEAR() 函數返回date_expression 中的年份值。

      例4-70:


    提醒:在使用日期函數時,其日期值應在1753年到9999年之間,這是SQL Server系統所能識別的日期范圍,否則會出現錯誤。

      例4-71:


    ·DATEADD()
    DATEADD() 函數語法如下:
    DATEADD (<datepart>, <number>, <date>)
    DATEADD() 函數返回指定日期date 加上指定的額外日期間隔number 產生的新日期。參數“datepart” 在日期函數中經常被使用,它用來指定構成日期類型數據的各組件,如年、季、月、日、星期等。其取值如表4-9 所示:


      例4-72:



    ·DATEDIFF()
    DATEDIFF() 函數語法如下:
    DATEDIFF() (<datepart>, <date1>, <date2>)
    DATEDIFF() 函數返回兩個指定日期在datepart 方面的不同之處,即date2 超過date1的差距值,其結果值是一個帶有正負號的整數值。針對不同的datepart, DATEDIFF()函數所允許的最大差距值不一樣,如:datepart 為second 時,DATEDIFF() 函數所允許的最大差距值為68: 年datepart 為millisecond 時,DATEDIFF() 函數所允許的最大差距值為24 天20 小時30 分23 秒647 毫秒。

      例4-73: 查詢在本單位工作了8 年以上的員工的姓名和所在的部門,結果按在本單位工作的時間長短排序。


    ·DATENAME()
    DATENAME() 函數語法如下:
    DATENAME (<datepart>, <date)>
    DATENAME() 函數以字符串的形式返回日期的指定部分此部分。由datepart 來指定。

      例4-74: 查詢工資大于等于7000 的員工的姓名、部門編號、工資和進入單位的年份,結果按工資高低降序排列。


    ·DATEPART()
    DATEPART() 函數語法如下:
    DATEPART (<datepart>, <date>)
    DATEPART() 函數以整數值的形式返回日期的指定部分。此部分由datepart 來指定。
    DATEPART (dd, date) 等同于DAY (date)
    DATEPART (mm, date) 等同于MONTH (date)
    DATEPART (yy, date) 等同于YEAR (date)

      例4-75:


    ·GETDATE()
    GETDATE() 函數語法如下:
    GETDATE()
    GETDATE() 函數以DATETIME 的缺省格式返回系統當前的日期和時間,它常作為其它函數或命令的參數使用。

      例4-71:

     
    posted on 2005-04-07 14:04 噼里啪啦的世界 閱讀(826) 評論(5)  編輯  收藏 所屬分類: 數據庫

    評論

    # re: 字符串函數(一) 2007-07-25 17:27 nnnn
    nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
    nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
      回復  更多評論
      

    # re: 字符串函數(一) 2007-07-25 17:28 nnnn
    jjjjjjjjjjjj
    jjjjjjjjjjj
    mmmmmmmmmmm
    mmmmmmmmmmmmmm
      回復  更多評論
      

    # re: 字符串函數(一) 2007-07-25 17:28 nnnn
    fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
    hhhhhhhhhhh
    kkkkkkkkkkkkkkkkkkkkkk
      回復  更多評論
      

    # re: 字符串函數(一) 2007-07-25 17:31 nnnn
    hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
    hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh  回復  更多評論
      

    # re: 字符串函數(一) 2007-07-25 17:31 nnnn
    ffffffffffffffffffffffffffffffffff
    fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
    fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
      回復  更多評論
      

    主站蜘蛛池模板: 亚洲成AV人网址| 亚洲av永久无码精品三区在线4 | 2022久久国产精品免费热麻豆| 亚洲精品欧美综合四区| 久久精品免费大片国产大片| 久久亚洲国产成人影院| 亚洲色成人网一二三区| 久久亚洲AV成人无码国产电影 | 宅男666在线永久免费观看| 亚洲精品无码久久久影院相关影片| 免费在线观看理论片| 爽爽日本在线视频免费| 亚洲一区二区三区偷拍女厕| 亚洲女人18毛片水真多| 久久久亚洲裙底偷窥综合| 亚洲精品无码成人片久久不卡 | 亚洲成人免费网站| 视频一区二区三区免费观看| 青草草色A免费观看在线| 亚洲av永久无码精品网站| 国产亚洲成人在线播放va| 亚洲精品国产第一综合99久久| 日韩精品免费在线视频| 亚洲国产精品成人| 亚洲欧美日韩中文高清www777| 日韩电影免费在线观看| 中文字幕亚洲日韩无线码| 老司机午夜精品视频在线观看免费| 成年黄网站色大免费全看| 性短视频在线观看免费不卡流畅| 亚洲男人的天堂www| sss在线观看免费高清| 免费A级毛片无码久久版| 亚洲中文精品久久久久久不卡| 久久中文字幕免费视频| 噼里啪啦免费观看高清动漫4| 久久久久亚洲精品成人网小说 | 亚洲制服丝袜精品久久| 中国xxxxx高清免费看视频| 少妇中文字幕乱码亚洲影视| a级片免费在线播放|