1)日期和日期转换函数。
SQL:
SELECT A.*, CASE WHEN NVL(PAA009,'')='' OR PAA009 >Convert(Varchar(10), SYSDATE,120) THEN 'Y' ELSE 'N' END AS ActiveUser
FROM POWPAA A WHERE PAA001='admin' or PAA002='admin'
Oracle:
SELECT A.*, CASE WHEN NVL(PAA009,'')='' or PAA009>TO_CHAR(SYSDATE,'YYYY-MM-DD') THEN 'Y'
ELSE 'N'
END AS ActiveUser FROM POWPAA A WHERE PAA001='admin' or PAA002='admin';
Oracle的CONVERT的函数主要用于将一个字符串从一个字符集转换为另一个字符集。不过需要注意的是,CONVERT函数在Oracle 12c及以上版本中已经被弃用,建议使用其等价函数NLS_CONVERT来替代
select to_char(sysdate, 'YYYY-MM-DD HH24:MM:SS'),
TO_CHAR(SYSDATE,'YYYY-MM-DD'),to_char(sysdate, 'd'),
TO_DATE('2023-04-01', 'YYYY-MM-DD'),
TO_DATE('2023-04-01 14:00:00', 'YYYY-MM-DD HH24:MI:SS')
from dual;
2)Isnull()函数 要用NAL替代
SQL: ISNUL(Auditing,'N')
Oracle: NVL(Auditing,'N')
3)Oracle不能使用NOLOCK,默认是读取未提交的
4)不能使用数据库前缀,数据表取别名时也不能用as
Select * from dbo.POWPAA
5)跨数据库查询
在Oracle中执行跨数据库查询可以通过数据库链接(Database Link)来实现。以下是实现步骤:
创建数据库链接: 在目标数据库中创建一个到源数据库的数据库链接,可以使用以下SQL语句创建数据库链接:
CREATE DATABASE LINK link_to_sourceCONNECT TO source_user IDENTIFIED BY source_passwordUSING 'source_database';
其中,link_to_source是链接的名称,source_user和source_password是源数据库的用户名和密码,source_database是源数据库的连接字符串。
执行跨数据库查询: 在目标数据库中,可以使用以下SQL语句执行跨数据库查询:
SELECT * FROM table_name@link_to_source;
其中,table_name是源数据库中的表名,link_to_source是之前创建的数据库链接。
6)数字与字符的转化
SELECT TO_CHAR(12345) AS number_as_char FROM DUAL;
SELECT TO_NUMBER('12345') AS number_from_char FROM DUAL;
7)Oracle没有TOP语句,要使用Rownum来规代
SELECT * FROM table_name WHERE ROWNUM <= 10 ORDER BY column_name;