簡體   English   中英

有沒有顯示所需結果的Oracle查詢,即按日期desc排序

[英]There is oracle query which is not showing the desired result i.e order by date desc

用於從表中選擇數據的Oracle查詢,但未顯示日期降序。

WITH cte AS
(
  SELECT DISTINCT cmoa.adate,
         subject,
         TYPE,
         to_char(cmoa.adate, 'DD/MM/YYYY') awarddate,
         (SELECT name
          FROM dopprod.cm_awards
          WHERE cm_awardsid = cmoa.awards) AS awardname
  FROM dopprod.cm_emp_master m
    INNER JOIN dopprod.cm_officer_awards cmoa ON m.cm_emp_masterid = cmoa.name
  WHERE m.cm_emp_masterid = '" + empcode + "'
)
SELECT row_number() OVER (ORDER BY awarddate) AS sno,
       subject,
       TYPE,
       awarddate,
       awardname
FROM dopprod.cte
ORDER BY sno

如果您不這樣說,為什么它會以降序顯示日期? 不是嗎

order by cmoa.adate DESC           --> your code is missing DESC

請嘗試以下操作-您需要按以下順序指定desc

WITH cte
         AS (SELECT DISTINCT cmoa.adate,
                             subject,
                             TYPE,
                             TO_CHAR (cmoa.adate, 'DD/MM/YYYY') AwardDate,
                             (SELECT Name
                                FROM dopprod.cm_awards
                               WHERE cm_awardsid = cmoa.awards)
                                AS awardname
               FROM dopprod.CM_EMP_MASTER m
                    INNER JOIN dopprod.cm_officer_awards cmoa
                       ON m.cm_emp_masterid = cmoa.name
              WHERE m.CM_EMP_MASTERID = 'someid')
      SELECT ROW_NUMBER () OVER (ORDER BY cmoa.adate DESC) AS sno,
             subject,
             TYPE,
             AwardDate,
             awardname
        FROM dopprod.cte
    ORDER BY cmoa.adate desc

為什么不這樣做呢?

SELECT rownum AS sno,
       subject, TYPE, awarddate, awardname
FROM dopprod.cte
ORDER BY adate DESC

如果要按日期值排序,則需要按日期 order by包括日期列,而不是字符串列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM