使用连接转换函数

时间:2017-09-19 20:54:59

标签: sql join to-char

SELECT D.DATEVAL,
       D.DAY,
       D.MONVAL,
       D.YEARVAL,
       E.HIREDATE 
  FROM DATE1 D,
       EMP E 
 WHERE TO_DATE('D.DATEVAL-D.MONVAL-D.YEARVAL','DD-MON-YYYY') = E.HIREDATE; 

这个子查询是否正确?

我的要求是显示date1表列和hiredate,date1列是通过使用TO_CHAR()fn从hiredate派生的。注意:date1表中没有hiredate列

1 个答案:

答案 0 :(得分:0)

我假设DATEVAL已经是一个日期值,它与你已经可以用来加入表格的HIREDATE相同

SELECT D.DATEVAL,
       D.DAY,
       D.MONVAL,
       D.YEARVAL,
       E.HIREDATE 
  FROM DATE1 D
  JOIN EMP E 
    ON TO_DATE('D.DATEVAL','DD-MON-YYYY') = E.HIREDATE;

或者如果您想使用其他列,可以使用

TO_DATE(D.DAY || '-' || D.MONVAL || '-' D.YEARVAL,'DD-MON-YYYY') = E.HIREDATE;

因为您使用了TO_DATE(),所以您可能正在使用Oracle或Postgre,您可以在其中使用|| (管道)连接字符串