RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
2. mysql If语法说明
功能: 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2;
否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在
语境而定。
用法:
mysql: SELECT IF(1>2,2,3);
SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;
SQL> select to_char(sysdate,'hh24-mi-ss') from dual;
mysql> select date_format(now(),'%Y-%m-%d');
mysql> select time_format(now(),'%H-%i-%S');
ORACLE:SELECT to_date('2009-3-6','yyyy-mm-dd') VAULE FROM DUAL
MYSQL: SELECT STR_TO_DATE('2004-03-01', '%Y-%m-%d') VAULE
TRUNC函数为指定元素而截去的日期值。
ORACLE: select trunc(-1.002) value from dual
MYSQL:select cast(-1.002 as SIGNED) value
MYSQL:
字符集转换 : CONVERT(xxx USING gb2312)
类型转换和SQL Server一样,就是类型参数有点点不同 : CAST(xxx AS 类型) , CONVERT(xxx,类型),类型必须用下列的类型:
可用的类型
二进制,同带binary前缀的效果 : BINARY
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED
ORACLE:SELECT TO_NUMBER('123') AS VALUE FROM DUAL;
MYSQL: SELECT CAST("123" AS SIGNED INTEGER) as value;
SIGNED INTEGER:带符号的整形
ORACLE:select SYSDATE value from dual
MYSQL:select now() value
select sysdate() value
ORACLE: SELECT Next_day(sysdate,7) value FROM DUAL
MYSQL: SELECT F_COMMON_NEXT_DAY(SYSDATE(), 3) value from DUAL;
(3:指星期的索引值)返回的指定的紧接着下一个星期的日期
ORACLE: SELECT ADD_MONTHS(sysdate, 2) as value from DUAL;
MYSQL: SELECT DATE_ADD(sysdate(), interval 2 month) as value from DUAL;
用法:
mysql: SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
oracle: 直接用两个日期相减(比如d1-d2=12.3)
MYSQL: 可以从JAVA中得到错误代码,错误状态和错误消息
MYSQL: 可以从JAVA中得到错误代码,错误状态和错误消息
START TRANSACTION;
INSERT INTO user(username,password)
VALUES (username,MD5(password));
SELECT LAST_INSERT_ID() INTO id;
COMMIT;
ORCALE: SELECT SUM(enable_flag) FROM SD_USR;
MYSQL: SELECT SUM(enable_flag) FROM SD_USR;