SQL SERVER函數(shù)

一、字符轉(zhuǎn)換函數(shù)

1、ASCII()

返回字符表達(dá)式最左端字符的ASCII 碼值。在ASCII()函數(shù)中,純數(shù)字的字符串可不用‘'括起來,但含其它字符的字符串必須用‘'括起來使用,否則會出錯。

2、CHAR()

將ASCII 碼轉(zhuǎn)換為字符。如果沒有輸入0 ~ 255 之間的ASCII 碼值,CHAR() 返回NULL 。

3、LOWER()和UPPER()

LOWER()將字符串全部轉(zhuǎn)為小寫;UPPER()將字符串全部轉(zhuǎn)為大寫。

4、STR()

把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。

STR (<float_expression>[,length[, <decimal>]])

length 指定返回的字符串的長度,decimal 指定返回的小數(shù)位數(shù)。如果沒有指定長度,缺省的length 值為10, decimal 缺省值為0。

當(dāng)length 或者decimal 為負(fù)值時,返回NULL;

當(dāng)length 小于小數(shù)點左邊(包括符號位)的位數(shù)時,返回length 個*;

先服從length ,再取decimal ;

當(dāng)返回的字符串位數(shù)小于length ,左邊補(bǔ)足空格。

二、去空格函數(shù)

1、LTRIM() 把字符串頭部的空格去掉。

2、RTRIM() 把字符串尾部的空格去掉。

三、取子串函數(shù)

1、left()

LEFT (<character_expression>, <integer_expression>)

返回character_expression 左起 integer_expression 個字符。

2、RIGHT()

RIGHT (<character_expression>, <integer_expression>)

返回character_expression 右起 integer_expression 個字符。

3、SUBSTRING()

SUBSTRING (<expression>, <starting_ position>, length)

返回從字符串左邊第starting_ position 個字符起length個字符的部分。

四、字符串比較函數(shù)

1、CHARINDEX()

返回字符串中某個指定的子串出現(xiàn)的開始位置。

CHARINDEX (<'substring_expression'>, <expression>)

其中substring _expression 是所要查找的字符表達(dá)式,expression 可為字符串也可為列名表達(dá)式。如果沒有發(fā)現(xiàn)子串,則返回0 值。

此函數(shù)不能用于TEXT 和IMAGE 數(shù)據(jù)類型。

2、PATINDEX()

返回字符串中某個指定的子串出現(xiàn)的開始位置。

PATINDEX (<'%substring _expression%'>, <column_ name>)其中子串表達(dá)式前后必須有百分號“%”否則返回值為0。

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

五、字符串操作函數(shù)

1、QUOTENAME()

返回被特定字符括起來的字符串。

QUOTENAME (<'character_expression'>[, quote_ character]) 其中quote_ character 標(biāo)明括字符串所用的字符,缺省值為“[]”。

2、REPLICATE()

返回一個重復(fù)character_expression 指定次數(shù)的字符串。

REPLICATE (character_expression integer_expression) 如果integer_expression 值為負(fù)值,則返回NULL 。

3、REVERSE()

將指定的字符串的字符排列順序顛倒。

REVERSE (<character_expression>) 其中character_expression 可以是字符串、常數(shù)或一個列的值。

4、REPLACE()

返回被替換了指定子串的字符串。

REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用string_expression3 替換在string_expression1 中的子串string_expression2。

4、SPACE()

返回一個有指定長度的空白字符串。

SPACE (<integer_expression>) 如果integer_expression 值為負(fù)值,則返回NULL 。

5、STUFF()

用另一子串替換字符串指定位置、長度的子串。

STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>)

如果起始位置為負(fù)或長度值為負(fù),或者起始位置大于character_expression1 的長度,則返回NULL 值。

如果length 長度大于character_expression1 中 start_ position 以右的長度,則character_expression1 只保留首字符。

六、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

1、CAST()

CAST (<expression> AS <data_ type>[ length ])

2、CONVERT()

CONVERT (<data_ type>[ length ], <expression> [, style])

1)data_type為SQL Server系統(tǒng)定義的數(shù)據(jù)類型,用戶自定義的數(shù)據(jù)類型不能在此使用。

2)length用于指定數(shù)據(jù)的長度,缺省值為30。

3)把CHAR或VARCHAR類型轉(zhuǎn)換為諸如INT或SAMLLINT這樣的INTEGER類型、結(jié)果必須是帶正號或負(fù)號的數(shù)值。

4)TEXT類型到CHAR或VARCHAR類型轉(zhuǎn)換最多為8000個字符,即CHAR或VARCHAR數(shù)據(jù)類型是最大長度。

5)IMAGE類型存儲的數(shù)據(jù)轉(zhuǎn)換到BINARY或VARBINARY類型,最多為8000個字符。

6)把整數(shù)值轉(zhuǎn)換為MONEY或SMALLMONEY類型,按定義的國家的貨幣單位來處理,如人民幣、美元、英鎊等。

7)BIT類型的轉(zhuǎn)換把非零值轉(zhuǎn)換為1,并仍以BIT類型存儲。

8)試圖轉(zhuǎn)換到不同長度的數(shù)據(jù)類型,會截短轉(zhuǎn)換值并在轉(zhuǎn)換值后顯示“+”,以標(biāo)識發(fā)生了這種截斷。

9)用CONVERT()函數(shù)的style 選項能以不同的格式顯示日期和時間。style 是將DATATIME 和SMALLDATETIME 數(shù)據(jù)轉(zhuǎn)換為字符串時所選用的由SQL Server 系統(tǒng)提供的轉(zhuǎn)換樣式編號,不同的樣式編號有不同的輸出格式。

七、日期函數(shù)

1、day(date_expression)

返回date_expression中的日期值

2、month(date_expression)

返回date_expression中的月份值

3、year(date_expression)

返回date_expression中的年份值

4、DATEADD()

DATEADD (<datepart>, <number>, <date>)

返回指定日期date 加上指定的額外日期間隔number 產(chǎn)生的新日期。

5、DATEDIFF()

DATEDIFF (<datepart>, <date1>, <date2>)

返回兩個指定日期在datepart 方面的不同之處,即date2 超過date1的差距值,其結(jié)果值是一個帶有正負(fù)號的整數(shù)值。

6、DATENAME()

DATENAME (<datepart>, <date>)

以字符串的形式返回日期的指定部分此部分。由datepart 來指定。

7、DATEPART()

DATEPART (<datepart>, <date>)

以整數(shù)值的形式返回日期的指定部分。此部分由datepart 來指定。

DATEPART (dd, date) 等同于DAY (date)

DATEPART (mm, date) 等同于MONTH (date)

DATEPART (yy, date) 等同于YEAR (date)

8、GETDATE()

以DATETIME 的缺省格式返回系統(tǒng)當(dāng)前的日期和時間。

內(nèi)部合計函數(shù)

1)COUNT(*) 返回行數(shù)

2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的個數(shù)

3)SUM(COLNAME/EXPRESSION)返回指定列或表達(dá)式的數(shù)值和;

4)SUM(DISTINCT COLNAME) 返回指定列中唯一值的和

5)AVG(COLNAME/EXPRESSION)返回指定列或表達(dá)式中的數(shù)值平均值

6)AVG(DISTINCT COLNAME) 返回指定列中唯一值的平均值

7)MIN(COLNAME/EXPRESSION)返回指定列或表達(dá)式中的數(shù)值最小值

8)MAX(COLNAME/EXPRESSION)返回指定列或表達(dá)式中的數(shù)值最大值

一、內(nèi)部函數(shù)

1、內(nèi)部合計函數(shù)

1)COUNT(*) 返回行數(shù)

2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的個數(shù)

3)SUM(COLNAME/EXPRESSION)返回指定列或表達(dá)式的數(shù)值和;

4)SUM(DISTINCT COLNAME) 返回指定列中唯一值的和

5)AVG(COLNAME/EXPRESSION)返回指定列或表達(dá)式中的數(shù)值平均值

6)AVG(DISTINCT COLNAME) 返回指定列中唯一值的平均值

7)MIN(COLNAME/EXPRESSION)返回指定列或表達(dá)式中的數(shù)值最小值

8)MAX(COLNAME/EXPRESSION)返回指定列或表達(dá)式中的數(shù)值最大值

2、日期與時間函數(shù)

1)DAY(DATE/DATETIME EXPRESSION)返回指定表達(dá)式中的當(dāng)月幾號

2)MONTH(DATE/DATETIME EXPRESSION) 返回指定表達(dá)式中的月份

3)YEAR(DATE/DATETIME EXPRESSION)返回指定表達(dá)式中的年份

4)WEEKDAY(DATE/DATETIME EXPRESSION) 返回指定表達(dá)式中的當(dāng)周星期幾

5)DATE(NOT DATE EXPRESSION)返回指定表達(dá)式代表的日期值

6)TODAY 返回當(dāng)前日期的日期值

7)CURRENT[FIRST TO LAST] 返回當(dāng)前日期的日期時間值

8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定單位數(shù)

9)MDY(MONTH,DAY,YEAR) 返回標(biāo)識指定年、月、日的日期值

10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表達(dá)式代表的日期時間值

11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表達(dá)式代表的時間間隔值

12)EXTEND(DATE/DATETIME EXPRESSION,[FIRST TO LAST])返回經(jīng)過調(diào)整的日期或日期時間值

To_char函數(shù)將datetime和date值轉(zhuǎn)化為字符值。

To_date函數(shù)將字符值轉(zhuǎn)化為datetime類型的值。例to_date(“1978-10-07 10:00” ,”%Y-%m-%d %H:%M)

例子1、和UNITS合用,指定日期或時間單位(year,month,day,hour,minute,seond,fraction):

let tmp_date = today + 3 UNITS day

例子2、let tmp_date = MDY(10,30,2002) -- 2002-10-30

例子3、let tmp_date = today + interval(7) day to day --當(dāng)前時間加上7天;

注:該功能與1相似;

例子4、EXTEND轉(zhuǎn)換日期或日期時間值

let tmp_inthour = extend(datetime1,hour to hour)

3、代數(shù)函數(shù)

1)ABS(COLNAME/EXPRESSION): 取絕對值

2)MOD(COLNAME/EXPRESSION,DIVISOR) 返回除以除數(shù)后的模(余數(shù))

3)POW(COLNAME/EXPRESSION,EXPONENT) 返回一個值的指數(shù)冥

例子:let tmp_float = pow(2,3) --8.00000000

4)ROOT(COLNAME/EXPRESSION,[INDEX]) 返回指定列或表達(dá)式的根值

5)SQRT(COLNAME/EXPRESSION)返回指定列或表達(dá)式的平方根值

6)ROUND(COLNAME/EXPRESSION,[FACTOR]) 返回指定列或表達(dá)式的圓整化值

7)TRUNC(COLNAME/EXPRESSION,[FACTOR]) 返回指定列或表達(dá)式的截尾值

說明:上兩者中FACTOR指定小數(shù)位數(shù),若不指定,則為0;若為負(fù)數(shù),則整化到小數(shù)點左邊;

注:ROUND是在指定位上進(jìn)行4舍5入;TRUNC是在指定位上直接截斷;

let tmp_float = round(4.555,2) --4.56

let tmp_float = trunc(4.555,2) --4.55

4、指數(shù)與對數(shù)函數(shù)

1)EXP(COLNAME/EXPRESSION)返回指定列或表達(dá)式的指數(shù)值

2)LOGN(COLNAME/EXPRESSION)返回指定列或表達(dá)式的自然對數(shù)值

3)LOG10(COLNAME/EXPRESSION)返回指定列或表達(dá)式的底數(shù)位10的對數(shù)值

5、三角函數(shù)

1)COS(RADIAN EXPRESSION)返回指定弧度表達(dá)式的余弦值

2)SIN(RADIAN EXPRESSION)正弦

3)TAN(RADIAN EXPRESSION)正切

4)ACOS(RADIAN EXPRESSION)反余弦

5)ASIN(RADIAN EXPRESSION)反正弦

6)ATAN(RADIAN EXPRESSION)反正切

7)ATAN2(X,Y) 返回坐標(biāo)(X,Y)的極坐標(biāo)角度組件

6、統(tǒng)計函數(shù)

1)RANGE(COLNAME) 返回指定列的最大值與最小值之差 = MAX(COLNAME)-MIN(COLNAME)

2)VARIANCE(COLNAME) 返回指定列的樣本方差;

3)STDEV(COLNAME) 返回指定列的標(biāo)準(zhǔn)偏差;

7、其它函數(shù)

1)USER 返回當(dāng)前用戶名

2)HEX(COLNAME/EXPRESSION)返回指定列或表達(dá)式的十六進(jìn)制值

3)LENGTH(COLNAME/EXPRESSION)返回指定字符列或表達(dá)式的長度

4)TRIM(COLNAME/EXPRESSION)刪除指定列或表達(dá)式前后的字符

5)COLNAME/EXPRESSION || COLNAME/EXPRESSION 返回并在一起的字符;

8、基數(shù)函數(shù):

1)cardinality(僅適用IDS)函數(shù)對集合包含的元素數(shù)目計數(shù)。

智能大對象函數(shù),(僅適用與IDS)

filetoblob( ),將文件復(fù)制到BLOB列中

filetoclob( ),將文件復(fù)制到CLOB列中

locopy( ),將BLOB或CLOB類型的數(shù)據(jù)復(fù)制到另一個BLOB或CLOB列中

lotofile( ),將BLOB或CLOB復(fù)制到文件中

9、字符串處理函數(shù):

lower,將字符串中每個大寫字母轉(zhuǎn)換為小寫字母

upper,將字符串中每個小寫字母轉(zhuǎn)換為大寫字母

initcap,將字符串中每個詞的首寫字母轉(zhuǎn)換成大寫

replace,將字符串中的某一組字符轉(zhuǎn)換成其它字符,例replace(col,”each”,”eve”)

substr,返回字符串中的某一部分,例substr(col,1,2)

substring,返回字符串中的某一部分,例substring(col,from 1 to 4)

lpad,使用lpad函數(shù)已用重復(fù)次數(shù)達(dá)到必要次數(shù)的字符序列在左邊填充或截斷的字符串的副本,這取決于字符串中填充部分的指定長度。

舉例:字段 col 為char(15)類型,select lpad(col,21,”_”) from tab_name則顯示為在col前加上六個_。

Rpad,使用rpad函數(shù)已用重復(fù)次數(shù)達(dá)到必要次數(shù)的字符序列在右邊填充或截斷的字符串的副本,這取決于字符串中填充部分的指定長度。

舉例:字段col為char(15)類型,select rpad(col,21,”_”) from tab_name則顯示為在col后邊加上六個_。

10、其它函數(shù):

hex,返回表達(dá)式的十六進(jìn)制數(shù)

round,返回表達(dá)式的四舍五入值

trunc,返回表達(dá)式的截斷值

length,計算表達(dá)式的長度

user,返回執(zhí)行查詢的用戶的用戶名(登陸帳戶名)

today,返回當(dāng)前系統(tǒng)日期

dbservername,返回數(shù)據(jù)庫服務(wù)器的名稱,同sitename

dbinfo,返回數(shù)據(jù)庫的相關(guān)信息

decode,函數(shù)來將一個具有一個值的表達(dá)式轉(zhuǎn)換為另一個值

decode(test,a,a_value,b,b_value,c,c_value……),decode函數(shù)不支持TEXT和BYTE類型。

Nvl,來將求值為空的表達(dá)式轉(zhuǎn)化為另一個想要指定的值。

另外還可以在select語句中使用存儲過程,如select spl($test) from tab_name

二、IDS內(nèi)部函數(shù)

1、DBSERVERNAME 返回數(shù)據(jù)庫服務(wù)器名 let tmp_char=DBSERVERNAME

2、SITENAME 返回數(shù)據(jù)庫服務(wù)器名 let tmp_char=SITENAME

說明:兩者功能相同;

3、DBINFO(‘SPECIAL_KEYWORD') 返回只關(guān)鍵字值

例子1:返回數(shù)據(jù)中每個表的DBSPACE名稱

select dbinfo('dbspace',partnum),tabname from systables

where tabid>99 and tabtype='T' (OK)

例子2:返回任何表中插入的最后一個SERIAL值

select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1

例子3:返回最后一個SELECT,INSERT,UPDATE,DELETE或EXECUTE PROCEDURE語句處理的行數(shù);

select dbinfo('sqlca.sqlerrd2') from systables where tabid=1;

三、其它

本函數(shù)庫共有 38 個函數(shù)

目前支持的 Informix 版本為 ODS 7.x、SE 7.x 與 Universal Server (IUS) 9.x 三種。在 ODS 7.x 的版本中,完全支持所有的數(shù)據(jù)類型,而在 IUS 9.x 中,不支持 SLOB 與 CLOB 二種類型。

要在 Web Server 上安裝 Informix Client 端,在編譯 PHP 之前 (configure 之前),要先設(shè)好 IFX_LIBDIR、IFX_LIBS 及 IFX_INCDIR 三種環(huán)境變量,若是 9.x 版尚要配置 HAVE_IFX_IUS 環(huán)境變量。同時在配置時要加入 --with_informix=yes 的選項。

ifx_connect: 打開 Informix 服務(wù)器連接。

ifx_pconnect: 打開 Informix 服務(wù)器持續(xù)連接。

ifx_close: 關(guān)閉 Informix 服務(wù)器連接。

ifx_query: 送出一個 query 字符串。

ifx_prepare: 準(zhǔn)備 query 字符串。

ifx_do: 執(zhí)行已準(zhǔn)備 query 字符串。

ifx_error: 取得 Informix 最后的錯誤。

ifx_errormsg: 取得 Informix 最后錯誤信息。

ifx_affected_rows: 得到 Informix 最后操作影響的列數(shù)目。

ifx_getsqlca: 取得 query 后的 sqlca 信息。

ifx_fetch_row: 返回單列的各字段。

ifx_htmltbl_result: 將 query 返回數(shù)據(jù)轉(zhuǎn)成 HTML 表格。

ifx_fieldtypes: 列出 Informix 的 SQL 字段。

ifx_fieldproperties: 列出 Informix 的 SQL 字段屬性。

ifx_num_fields: 取得返回字段的數(shù)目。

ifx_num_rows: 取得返回列的數(shù)目。

ifx_free_result: 釋放返回占用內(nèi)存。

ifx_create_char: 建立字符類。

ifx_free_char: 刪除字符類。

ifx_update_char: 更改字符類。

ifx_get_char: 取得字符類。

ifx_create_blob: 建立長位類。

ifx_copy_blob: 復(fù)制長位類。

ifx_free_blob: 刪除長位類。

ifx_get_blob: 取得長位類。

ifx_update_blob: 更改長位類。

ifx_blobinfile_mode: 配置長位類模式。

ifx_textasvarchar: 配置文字模式默認(rèn)值。

ifx_byteasvarchar: 配置位組模式默認(rèn)值。

ifx_nullformat: 配置空字符模式默認(rèn)值。

ifxus_create_slob: 建立 slob 類。

ifx_free_slob: 刪除 slob 類。

ifxus_close_slob: 刪除 slob 類。

ifxus_open_slob: 打開 slob 類。

ifxus_tell_slob: 返回目前文件或找尋位置。

ifxus_seek_slob: 配置目前文件或找尋位置。

ifxus_read_slob: 讀取指定數(shù)目的 slob 類。

ifxus_write_slob: 將字符串寫入 slob 類中。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,691評論 0 4
  • 總結(jié)了一些開發(fā)中常用的函數(shù): usleep() //函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() //函數(shù)從二進(jìn)制...
    ADL2022閱讀 556評論 0 3
  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進(jìn)制字符串對數(shù)據(jù)進(jìn)行解...
    上街買菜丶迷倒老太閱讀 1,509評論 0 20
  • 一、字符轉(zhuǎn)換函數(shù) 1、ASCII() 返回字符表達(dá)式最左端字符的ASCII碼值。在ASCII()函數(shù)中,純數(shù)字的字...
    輝格食品閱讀 1,793評論 0 3
  • 今天達(dá)成了“閱讀《孤獨的人,你要吃飽》”的成就。那么,就來說說這本書吧。 買這本書的時候,我正處于一個可以說挺痛苦...
    在下京墨閱讀 616評論 0 1

友情鏈接更多精彩內(nèi)容