一琅豆、字符轉(zhuǎn)換函數(shù)
1点待、ASCII()
返回字符表達(dá)式最左端字符的ASCII 碼值烈菌。在ASCII()函數(shù)中爱榕,純數(shù)字的字符串可不用‘'括起來(lái)瓣喊,但含其它字符的字符串必須用‘'括起來(lái)使用,否則會(huì)出錯(cuò)黔酥。
2藻三、CHAR()
將ASCII 碼轉(zhuǎn)換為字符。如果沒(méi)有輸入0 ~ 255 之間的ASCII 碼值絮爷,CHAR() 返回NULL 趴酣。
3、LOWER()和UPPER()
LOWER()將字符串全部轉(zhuǎn)為小寫(xiě)坑夯;UPPER()將字符串全部轉(zhuǎn)為大寫(xiě)岖寞。
4、STR()
把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)柜蜈。
STR (<float_expression>[仗谆,length[, <decimal>]])
length 指定返回的字符串的長(zhǎng)度淑履,decimal 指定返回的小數(shù)位數(shù)隶垮。如果沒(méi)有指定長(zhǎng)度,缺省的length 值為10秘噪, decimal 缺省值為0狸吞。
當(dāng)length 或者decimal 為負(fù)值時(shí),返回NULL指煎;
當(dāng)length 小于小數(shù)點(diǎn)左邊(包括符號(hào)位)的位數(shù)時(shí)蹋偏,返回length 個(gè)*;
先服從length 至壤,再取decimal 威始;
當(dāng)返回的字符串位數(shù)小于length ,左邊補(bǔ)足空格像街。
二黎棠、去空格函數(shù)
1晋渺、LTRIM() 把字符串頭部的空格去掉。
2脓斩、RTRIM() 把字符串尾部的空格去掉木西。
三、取子串函數(shù)
1随静、left()
LEFT (<character_expression>户魏, <integer_expression>)
返回character_expression 左起 integer_expression 個(gè)字符。
2挪挤、RIGHT()
RIGHT (<character_expression>叼丑, <integer_expression>)
返回character_expression 右起 integer_expression 個(gè)字符。
3扛门、SUBSTRING()
SUBSTRING (<expression>鸠信, <starting_ position>, length)
返回從字符串左邊第starting_ position 個(gè)字符起length個(gè)字符的部分论寨。
四星立、字符串比較函數(shù)
1、CHARINDEX()
返回字符串中某個(gè)指定的子串出現(xiàn)的開(kāi)始位置葬凳。
CHARINDEX (<'substring_expression'>绰垂, <expression>)
其中substring _expression 是所要查找的字符表達(dá)式,expression 可為字符串也可為列名表達(dá)式火焰。如果沒(méi)有發(fā)現(xiàn)子串劲装,則返回0 值。
此函數(shù)不能用于TEXT 和IMAGE 數(shù)據(jù)類(lèi)型昌简。
2占业、PATINDEX()
返回字符串中某個(gè)指定的子串出現(xiàn)的開(kāi)始位置。
PATINDEX (<'%substring _expression%'>纯赎, <column_ name>)其中子串表達(dá)式前后必須有百分號(hào)“%”否則返回值為0谦疾。
與CHARINDEX 函數(shù)不同的是,PATINDEX函數(shù)的子串中可以使用通配符犬金,且此函數(shù)可用于CHAR念恍、 VARCHAR 和TEXT 數(shù)據(jù)類(lèi)型。
五晚顷、字符串操作函數(shù)
1峰伙、QUOTENAME()
返回被特定字符括起來(lái)的字符串。
QUOTENAME (<'character_expression'>[音同, quote_ character]) 其中quote_ character 標(biāo)明括字符串所用的字符词爬,缺省值為“[]”秃嗜。
2权均、REPLICATE()
返回一個(gè)重復(fù)character_expression 指定次數(shù)的字符串顿膨。
REPLICATE (character_expression integer_expression) 如果integer_expression 值為負(fù)值,則返回NULL 叽赊。
3恋沃、REVERSE()
將指定的字符串的字符排列順序顛倒。
REVERSE (<character_expression>) 其中character_expression 可以是字符串必指、常數(shù)或一個(gè)列的值囊咏。
4、REPLACE()
返回被替換了指定子串的字符串塔橡。
REPLACE (<string_expression1>梅割, <string_expression2>, <string_expression3>) 用string_expression3 替換在string_expression1 中的子串string_expression2葛家。
4户辞、SPACE()
返回一個(gè)有指定長(zhǎng)度的空白字符串。
SPACE (<integer_expression>) 如果integer_expression 值為負(fù)值癞谒,則返回NULL 底燎。
5、STUFF()
用另一子串替換字符串指定位置弹砚、長(zhǎng)度的子串双仍。
STUFF (<character_expression1>, <start_ position>桌吃, <length>朱沃,<character_expression2>)
如果起始位置為負(fù)或長(zhǎng)度值為負(fù),或者起始位置大于character_expression1 的長(zhǎng)度茅诱,則返回NULL 值为流。
如果length 長(zhǎng)度大于character_expression1 中 start_ position 以右的長(zhǎng)度,則character_expression1 只保留首字符让簿。
六敬察、數(shù)據(jù)類(lèi)型轉(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ù)類(lèi)型椭迎,用戶自定義的數(shù)據(jù)類(lèi)型不能在此使用锐帜。
2)length用于指定數(shù)據(jù)的長(zhǎng)度,缺省值為30畜号。
3)把CHAR或VARCHAR類(lèi)型轉(zhuǎn)換為諸如INT或SAMLLINT這樣的INTEGER類(lèi)型缴阎、結(jié)果必須是帶正號(hào)或負(fù)號(hào)的數(shù)值。
4)TEXT類(lèi)型到CHAR或VARCHAR類(lèi)型轉(zhuǎn)換最多為8000個(gè)字符简软,即CHAR或VARCHAR數(shù)據(jù)類(lèi)型是最大長(zhǎng)度蛮拔。
5)IMAGE類(lèi)型存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)換到BINARY或VARBINARY類(lèi)型述暂,最多為8000個(gè)字符。
6)把整數(shù)值轉(zhuǎn)換為MONEY或SMALLMONEY類(lèi)型建炫,按定義的國(guó)家的貨幣單位來(lái)處理畦韭,如人民幣、美元肛跌、英鎊等艺配。
7)BIT類(lèi)型的轉(zhuǎn)換把非零值轉(zhuǎn)換為1,并仍以BIT類(lèi)型存儲(chǔ)衍慎。
8)試圖轉(zhuǎn)換到不同長(zhǎng)度的數(shù)據(jù)類(lèi)型转唉,會(huì)截短轉(zhuǎn)換值并在轉(zhuǎn)換值后顯示“+”,以標(biāo)識(shí)發(fā)生了這種截?cái)唷?/p>
9)用CONVERT()函數(shù)的style 選項(xiàng)能以不同的格式顯示日期和時(shí)間稳捆。style 是將DATATIME 和SMALLDATETIME 數(shù)據(jù)轉(zhuǎn)換為字符串時(shí)所選用的由SQL Server 系統(tǒng)提供的轉(zhuǎn)換樣式編號(hào)酝掩,不同的樣式編號(hào)有不同的輸出格式。
七眷柔、日期函數(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>)
返回兩個(gè)指定日期在datepart 方面的不同之處,即date2 超過(guò)date1的差距值负乡,其結(jié)果值是一個(gè)帶有正負(fù)號(hào)的整數(shù)值牍白。
6、DATENAME()
DATENAME (<datepart>抖棘, <date>)
以字符串的形式返回日期的指定部分此部分茂腥。由datepart 來(lái)指定。
7切省、DATEPART()
DATEPART (<datepart>最岗, <date>)
以整數(shù)值的形式返回日期的指定部分。此部分由datepart 來(lái)指定朝捆。
DATEPART (dd般渡, date) 等同于DAY (date)
DATEPART (mm, date) 等同于MONTH (date)
DATEPART (yy, date) 等同于YEAR (date)
8驯用、GETDATE()
以DATETIME 的缺省格式返回系統(tǒng)當(dāng)前的日期和時(shí)間脸秽。
內(nèi)部合計(jì)函數(shù)
1)COUNT(*) 返回行數(shù)
2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的個(gè)數(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)部合計(jì)函數(shù)
1)COUNT(*) 返回行數(shù)
2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的個(gè)數(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í)間函數(shù)
1)DAY(DATE/DATETIME EXPRESSION)返回指定表達(dá)式中的當(dāng)月幾號(hào)
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)前日期的日期時(shí)間值
8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定單位數(shù)
9)MDY(MONTH,DAY巩剖,YEAR) 返回標(biāo)識(shí)指定年铝穷、月、日的日期值
10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表達(dá)式代表的日期時(shí)間值
11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表達(dá)式代表的時(shí)間間隔值
12)EXTEND(DATE/DATETIME EXPRESSION佳魔,[FIRST TO LAST])返回經(jīng)過(guò)調(diào)整的日期或日期時(shí)間值
To_char函數(shù)將datetime和date值轉(zhuǎn)化為字符值曙聂。
To_date函數(shù)將字符值轉(zhuǎn)化為datetime類(lèi)型的值。例to_date(“1978-10-07 10:00” ,”%Y-%m-%d %H:%M)
例子1鞠鲜、和UNITS合用宁脊,指定日期或時(shí)間單位(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)前時(shí)間加上7天榆苞;
注:該功能與1相似;
例子4霞捡、EXTEND轉(zhuǎn)換日期或日期時(shí)間值
let tmp_inthour = extend(datetime1,hour to hour)
3坐漏、代數(shù)函數(shù)
1)ABS(COLNAME/EXPRESSION): 取絕對(duì)值
2)MOD(COLNAME/EXPRESSION族奢,DIVISOR) 返回除以除數(shù)后的模(余數(shù))
3)POW(COLNAME/EXPRESSION敦姻,EXPONENT) 返回一個(gè)值的指數(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á)式的截尾值
說(shuō)明:上兩者中FACTOR指定小數(shù)位數(shù)躏筏,若不指定,則為0呈枉;若為負(fù)數(shù)寸士,則整化到小數(shù)點(diǎn)左邊;
注:ROUND是在指定位上進(jìn)行4舍5入碴卧;TRUNC是在指定位上直接截?cái)啵?
let tmp_float = round(4.555,2) --4.56
let tmp_float = trunc(4.555,2) --4.55
4弱卡、指數(shù)與對(duì)數(shù)函數(shù)
1)EXP(COLNAME/EXPRESSION)返回指定列或表達(dá)式的指數(shù)值
2)LOGN(COLNAME/EXPRESSION)返回指定列或表達(dá)式的自然對(duì)數(shù)值
3)LOG10(COLNAME/EXPRESSION)返回指定列或表達(dá)式的底數(shù)位10的對(duì)數(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)計(jì)函數(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á)式的長(zhǎng)度
4)TRIM(COLNAME/EXPRESSION)刪除指定列或表達(dá)式前后的字符
5)COLNAME/EXPRESSION || COLNAME/EXPRESSION 返回并在一起的字符;
8挠轴、基數(shù)函數(shù):
1)cardinality(僅適用IDS)函數(shù)對(duì)集合包含的元素?cái)?shù)目計(jì)數(shù)传睹。
智能大對(duì)象函數(shù),(僅適用與IDS)
filetoblob( )岸晦,將文件復(fù)制到BLOB列中
filetoclob( ),將文件復(fù)制到CLOB列中
locopy( ),將BLOB或CLOB類(lèi)型的數(shù)據(jù)復(fù)制到另一個(gè)BLOB或CLOB列中
lotofile( ),將BLOB或CLOB復(fù)制到文件中
9欧啤、字符串處理函數(shù):
lower,將字符串中每個(gè)大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母
upper,將字符串中每個(gè)小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母
initcap启上,將字符串中每個(gè)詞的首寫(xiě)字母轉(zhuǎn)換成大寫(xiě)
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ù)的字符序列在左邊填充或截?cái)嗟淖址母北荆@取決于字符串中填充部分的指定長(zhǎng)度溅固。
舉例:字段 col 為char(15)類(lèi)型系宜,select lpad(col,21,”_”) from tab_name則顯示為在col前加上六個(gè)_。
Rpad发魄,使用rpad函數(shù)已用重復(fù)次數(shù)達(dá)到必要次數(shù)的字符序列在右邊填充或截?cái)嗟淖址母北卷锬粒@取決于字符串中填充部分的指定長(zhǎng)度。
舉例:字段col為char(15)類(lèi)型励幼,select rpad(col,21,”_”) from tab_name則顯示為在col后邊加上六個(gè)_汰寓。
10、其它函數(shù):
hex苹粟,返回表達(dá)式的十六進(jìn)制數(shù)
round有滑,返回表達(dá)式的四舍五入值
trunc,返回表達(dá)式的截?cái)嘀?
length嵌削,計(jì)算表達(dá)式的長(zhǎng)度
user毛好,返回執(zhí)行查詢的用戶的用戶名(登陸帳戶名)
today,返回當(dāng)前系統(tǒng)日期
dbservername苛秕,返回?cái)?shù)據(jù)庫(kù)服務(wù)器的名稱(chēng)肌访,同sitename
dbinfo,返回?cái)?shù)據(jù)庫(kù)的相關(guān)信息
decode艇劫,函數(shù)來(lái)將一個(gè)具有一個(gè)值的表達(dá)式轉(zhuǎn)換為另一個(gè)值
decode(test,a,a_value,b,b_value,c,c_value……),decode函數(shù)不支持TEXT和BYTE類(lèi)型吼驶。
Nvl,來(lái)將求值為空的表達(dá)式轉(zhuǎn)化為另一個(gè)想要指定的值。
另外還可以在select語(yǔ)句中使用存儲(chǔ)過(guò)程蟹演,如select spl($test) from tab_name
二风钻、IDS內(nèi)部函數(shù)
1、DBSERVERNAME 返回?cái)?shù)據(jù)庫(kù)服務(wù)器名 let tmp_char=DBSERVERNAME
2酒请、SITENAME 返回?cái)?shù)據(jù)庫(kù)服務(wù)器名 let tmp_char=SITENAME
說(shuō)明:兩者功能相同骡技;
3、DBINFO(‘SPECIAL_KEYWORD') 返回只關(guān)鍵字值
例子1:返回?cái)?shù)據(jù)中每個(gè)表的DBSPACE名稱(chēng)
select dbinfo('dbspace',partnum),tabname from systables
where tabid>99 and tabtype='T' (OK)
例子2:返回任何表中插入的最后一個(gè)SERIAL值
select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1
例子3:返回最后一個(gè)SELECT羞反,INSERT布朦,UPDATE,DELETE或EXECUTE PROCEDURE語(yǔ)句處理的行數(shù)苟弛;
select dbinfo('sqlca.sqlerrd2') from systables where tabid=1;
三喝滞、其它
本函數(shù)庫(kù)共有 38 個(gè)函數(shù)
目前支持的 Informix 版本為 ODS 7.x阁将、SE 7.x 與 Universal Server (IUS) 9.x 三種膏秫。在 ODS 7.x 的版本中,完全支持所有的數(shù)據(jù)類(lèi)型做盅,而在 IUS 9.x 中缤削,不支持 SLOB 與 CLOB 二種類(lèi)型。
要在 Web Server 上安裝 Informix Client 端吹榴,在編譯 PHP 之前 (configure 之前)亭敢,要先設(shè)好 IFX_LIBDIR、IFX_LIBS 及 IFX_INCDIR 三種環(huán)境變量图筹,若是 9.x 版尚要配置 HAVE_IFX_IUS 環(huán)境變量帅刀。同時(shí)在配置時(shí)要加入 --with_informix=yes 的選項(xiàng)。
ifx_connect: 打開(kāi) Informix 服務(wù)器連接远剩。
ifx_pconnect: 打開(kāi) Informix 服務(wù)器持續(xù)連接扣溺。
ifx_close: 關(guān)閉 Informix 服務(wù)器連接。
ifx_query: 送出一個(gè) query 字符串瓜晤。
ifx_prepare: 準(zhǔn)備 query 字符串锥余。
ifx_do: 執(zhí)行已準(zhǔn)備 query 字符串。
ifx_error: 取得 Informix 最后的錯(cuò)誤痢掠。
ifx_errormsg: 取得 Informix 最后錯(cuò)誤信息驱犹。
ifx_affected_rows: 得到 Informix 最后操作影響的列數(shù)目。
ifx_getsqlca: 取得 query 后的 sqlca 信息足画。
ifx_fetch_row: 返回單列的各字段雄驹。
ifx_htmltbl_result: 將 query 返回?cái)?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: 建立字符類(lèi)兼贡。
ifx_free_char: 刪除字符類(lèi)。
ifx_update_char: 更改字符類(lèi)娃胆。
ifx_get_char: 取得字符類(lèi)遍希。
ifx_create_blob: 建立長(zhǎng)位類(lèi)。
ifx_copy_blob: 復(fù)制長(zhǎng)位類(lèi)里烦。
ifx_free_blob: 刪除長(zhǎng)位類(lèi)凿蒜。
ifx_get_blob: 取得長(zhǎng)位類(lèi)。
ifx_update_blob: 更改長(zhǎng)位類(lèi)胁黑。
ifx_blobinfile_mode: 配置長(zhǎng)位類(lèi)模式废封。
ifx_textasvarchar: 配置文字模式默認(rèn)值。
ifx_byteasvarchar: 配置位組模式默認(rèn)值丧蘸。
ifx_nullformat: 配置空字符模式默認(rèn)值漂洋。
ifxus_create_slob: 建立 slob 類(lèi)。
ifx_free_slob: 刪除 slob 類(lèi)力喷。
ifxus_close_slob: 刪除 slob 類(lèi)刽漂。
ifxus_open_slob: 打開(kāi) slob 類(lèi)。
ifxus_tell_slob: 返回目前文件或找尋位置弟孟。
ifxus_seek_slob: 配置目前文件或找尋位置贝咙。
ifxus_read_slob: 讀取指定數(shù)目的 slob 類(lèi)。
ifxus_write_slob: 將字符串寫(xiě)入 slob 類(lèi)中拂募。