首页 > 解决方案 > 将 SQL Server 查询转换为 Oracle 等效查询

问题描述

有人可以帮我将以下 SQL Server 查询转换为他们的 Oracle 等价物吗?

另外,我无法理解查询的功能。

select 
    [sco_nm], count(1) as cnt 
from 
    (select 
         [sco_nm], DATEADD(dd, 0, DATEDIFF(dd, 0, [TIME_CREATED])) as DATE_CREATED
     from 
         [dbo].[sc_sm_res]
     group by 
         [sco_nm], DATEADD(dd, 0, DATEDIFF(dd, 0, [TIME_CREATED]))) as rec   
group by 
    [sco_nm]

   
SELECT 
    CAST(GETDATE() AS datetime2(0)) AS CURR, 
    [SC_SM], [PF_VSR_K], [PF_RN_K]
FROM 
    [dbo].[sc_sm_res]

我试图检查其他一些帖子,但无法理解该功能。

标签: sql-serveroracle

解决方案


据我所知,子查询中不需要分组,甚至不需要子查询。你可以使用trunc如下:

select sco_nm, count(distinct trunc(TIME_CREATED)) as cnt 
  from sc_sm_res rec 
 group by sco_nm

对于第二个查询:

SELECT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as CURR, 
       SC_SM
      ,PF_VSR_K
      ,PF_RN_K
  FROM sc_sm_res

推荐阅读