2015-07-06 4 views
1

Я пишу запрос select и можно заменить данные, отображаемые из инструкции select. Для бывшего, результата моего выбора запроса выглядитВозможно ли заменить результат запроса SQL Select?

Name Date Total 
---- ---- ---- 
No1 6/30/15 20 
No2 6/29/15 35 
No3 6/20/15 40 
No4 6/30/15 65 
No5 6/27/15 25 

Я хочу сделать расчет на основе даты и заменить все данные в ячейке с NULL или N/A.For таблицы выше, если дата является текущей датой, тогда все поля должны оставаться неповрежденными, иначе они должны обновляться как незаполненные.

Name Date Total 
---- ---- ---- 
No1 6/30/15 20 
No2 6/29/15 
No3 6/20/15 
No4 6/30/15 65 
No5 6/27/15 
+0

Вы могли бы сделать что-то вроде: выберите имя, дата, случай, когда дата = GETDATE(), то общее еще «» конец от – Luc

+0

использования выберите случай, когда дата = ... далее total else 'N/A' end ... – jarlh

+0

@Vignesh Покажите нам запрос. –

ответ

3

Вы можете использовать любой из:

  • DECODE
  • CASE

Использование DECODE (выглядит короче):

SELECT name, 
    DATE, 
    DECODE(DATE, TRUNC(SYSDATE), total, NULL) AS "Total" 
FROM table_name; 

Использование СЛУЧАЙ (выглядит многословным):

SELECT name, 
    DATE, 
    CASE 
    WHEN DATE = TRUNC(SYSDATE) 
    THEN total 
    ELSE NULL 
    END AS "Total" 
FROM table_name; 
+0

Вариант случая работает нормально. Еще одна трудность заключается в том, как я могу расширить ее до нескольких столбцов. Я попытался с помощью Nested Case и получил ошибку – Vignesh

+0

@ Vignesh Я не вижу ошибки, я не вижу ваш запрос, поэтому я не знаю, что вы имеете в виду. –

+0

Большое спасибо за вашу помощь .. Найден решение ... – Vignesh

Смежные вопросы