Oracle到mysql的转换



如何从oracle转换到sql?

把(+)放在左边和(+)右边有什么区别?

可以帮助我转换,尝试在线工具对我不起作用。

SELECT sc.serial_no, sc.status, ca2.cust_ref_no, ca2.name, ca2.msis, ca2.state_name, to_char(ca2.term_datetime,'DD/MM/YYYY HH:MI AM') te_datetime, ca2.serial_no term_ssno 
from so sc,  
( select ca.so_id, c.cust_ref_no, c.name, ca.msis, s.state_name, ca.te_datetime, t.serial_no 
from customer c, customer_account ca, state s, terminal t 
where c.install_state_id= s.state_id and c.cust_id = ca.cust_id and ca.term_id = t.term_id(+)) ca2 
where sc.so_id=ca2.so_id (+)and sc.status='Term' 

使用(+)是sql-92标准,强烈建议使用ANSI标准。

(+)表示连接的性质左连接或右连接。

对于您的查询,它将像这样:

SELECT sc.serial_no, sc.status, 
ca2.cust_ref_no, ca2.name, 
ca2.msis, ca2.state_name, 
to_char(ca2.term_datetime,'DD/MM/YYYY HH:MI AM') te_datetime, 
ca2.serial_no term_ssno 
from so sc LEFT JOIN  
( select ca.so_id, c.cust_ref_no, 
c.name, ca.msis, 
s.state_name, ca.te_datetime, t.serial_no 
from customer c 
JOIN customer_account ca ON c.cust_id = ca.cust_id
JOIN state s ON c.install_state_id= s.state_id
LEFT JOIN terminal t ON ca.term_id = t.term_id) ca2 
ON sc.so_id=ca2.so_id
WHERE sc.status='Term'

最新更新