函数 Informix 或 date column +/- DATE(value) 当前日期和时间 CURRENT TODAY 日期的字符串表示形DATETIME(value) 式 日期的整数表示形式 无 日期的四舍五入 日期截断 DATETIME(value) datetime unit TO datetime unit DATETIME(value) datetime unit TO datetime unit 将字符串转变为日期 DATETIME(value) 或 DATE(value) 将空值转换成日期 无 4转换函数
函数 从数字型到字符型 从字符型到数字型 Informix 隐含 其他 CONVERT 隐含(在未执行计算的情况下CONVERT 报错) 从日期型到字符型 从字符型到日期型 隐含 CONVERT 隐含(在未执行计算的情况下CONVERT 报错) 从十六进制到二进制 从二进制到十六进制 无 无 CONVERT CONVERT
5其它行级函数
函数 返回第一个非空表达式 Informix DECODE 如果exp1 = exp2,则返回空DECODE 值 用户登录ID编号 用户登录名 用户数据库ID编号 用户数据库名 当前用户 无 USER 无 USER USER 6聚合函数
函数 平均值 计数 最大值 最小值 标准差 求和 方差 全距 Informix AVG COUNT MAX MIN STDDEV SUM VARIANCE RANGE
7条件检验
Informix
DECODE (test_value, expression1, value1
[[,expression2, value2] […]] [,default_value] )
CASE test_value
WHEN expression1 THEN value1
[[WHEN expression2 THEN value2] [...]] [ELSE default_value] END
CREATE VIEW STUDENT_GPA (SSN, GPA)
AS SELECT SSN, ROUND(AVG(DECODE(grade ,'A', 4 ,'A+', 4.3 ,'A-', 3.7 ,'B', 3 ,'B+', 3.3 ,'B-', 2.7 ,'C', 2 ,'C+', 2.3 ,'C-', 1.7 ,'D', 1 ,'D+', 1.3
,'D-', 0.7 ,0)),2) FROM GRADE GROUP BY SSN 或
CREATE VIEW STUDENT_GPA (SSN, GPA) AS SELECT SSN, ROUND(AVG(CASE grade WHEN 'A' THEN 4 WHEN 'A+' THEN 4.3 WHEN 'A-' THEN 3.7 WHEN 'B' THEN 3 WHEN 'B+' THEN 3.3 WHEN 'B-' THEN 2.7 WHEN 'C' THEN 2 WHEN 'C+' THEN 2.3 WHEN 'C-' THEN 1.7 WHEN 'D' THEN 1 WHEN 'D+' THEN 1.3 WHEN 'D-' THEN 0.7 ELSE 0 END),2) FROM GRADE GROUP BY SSN
8将数值转换为不同数据类型
转换方式 从字符型到数字型 从数字型到字符型 从字符型到日期型 Informix CAST('10' AS number) '10'::number CAST(10 as char) 10::char CAST('97-JUL-04' AS datetime) '97-JUL-04'::datetime CASE('07-04-97' AS date) '07-04-97'::date 从日期型到字符型 CAST(CURRENT AS char) CURRENT::char 从十六进制到二进制 无 从二进制到十六进制 无
9用户定义函数
Informix
SELECT ssn, fname, lname, tuition_paid,
tuition_paid/get_sum_major(major) as percent_major FROM student
CREATE FUNCTION get_sum_major (inmajor varchar) RETURN NUMBER AS sum_paid number; BEGIN
SELECT sum(tuition_paid) into sum_paid FROM student
WHERE major = inmajor; RETURN(sum_paid); END get_sum_major;
10比较运算符
Operator 等于 大于 小于 大于等于 小于等于 不等于 不大于,不小于 属于集合成员 不属于集合成员 集合中的任意值 引用集合中的所有值 Informix (=) (>) (<) (>=) (<=) (!=,<>,^=) 无 IN NOT IN ANY,SOME != ALL,<> ALL,< ALL,> ALL,<= ALL,>= ALL 样式相似 样式不相似 x和y之间的值 x和y之间的值 数值存在 数值不存在 LIKE NOT LIKE BETWEEN x AND y NOT BETWEEN EXISTS NOT EXISTS Operator 数值为空或非空 Informix IS NULL, IS NOT NULL
11模式匹配
Informix SELECT * FROM STUDENT 其它 SELECT * FROM STUDENT_ADMIN.STUDENT WHERE LNAME MATCHES '[ABC]?' WHERE LNAME LIKE '[ABC]%'
12字符串连接
Informix FROM STUDENT 其它 FROM STUDENT_ADMIN.STUDENT SELECT FNAME||' '||LNAME AS NAME SELECT FNAME +' '+ LNAME AS NAME 13关键字
语句 声明变量 Informix SPL DEFINE DEFINE GLOBAL