SELECT DISTINCT Возвращение повторяющихся значений для столбца DATE - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь найти диапазон значений даты для столбца типа данных даты в одном из моих просмотров.

Я искал много форумов оракула, ища подобную ошибку и не повезло.

Столбцы для представления EPAServiceReport:

EPASERVICEREPORT_KEY    NUMBER(10)
EQUIPMENT_KEY           NUMBER(10)
STARIDNO                VARCHAR2(60)
WORKORDERNUMBER         NVARCHAR2(50)
REPORT_ID               NVARCHAR2(50)
CREATEDDATE             DATE

SQL:

SELECT DISTINCT createddate 
FROM epaservicereport 
ORDER BY createddate

Результаты:

12-OCT-15
12-OCT-15
19-OCT-15
19-OCT-15
27-OCT-15
30-OCT-15
04-NOV-15
05-NOV-15
12-NOV-15
12-NOV-15

Я ожидал увидеть только 1 строку на значение, т. Е. «Отличное», но вместо этого получил каждую строку из представления, возвращенную со многими повторяющимися значениями.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Вы также можете использовать это:

SQL Server:

select distinct CONVERT(varchar(12),createddate,105)
FROM epaservicereport 
ORDER BY 1;

Подробнее о касте и конвертации здесь:

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017

Oracle:

select distinct TO_CHAR(createddate,'YYYY-MM-DD')
FROM epaservicereport 
ORDER BY 1;
0 голосов
/ 10 января 2019

В вашем столбце даты тоже есть время. Таким образом, хотя он отображает то же самое, но на самом деле он отличается во времени в день.

Вы можете использовать это, чтобы получить только точную дату:

SELECT DISTINCT TRUNC(createddate)
FROM epaservicereport 
ORDER BY 1; --TRUNC(createddate)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...