2010-09-22 2 views
0

Я все еще новичок в SQL (Oracle) .. В основном на таблице, которую я выбираю, есть отметка времени, а некоторые - допустимые штампы, а некоторые нет (хранятся на таблица временного штампа). У меня есть функция, которую я могу использовать в предложениях «где», чтобы возвращать только действительные или недопустимые.Пользовательский столбец на мой оператор select

Но иногда мне нужно увидеть все записи с дополнительным столбцом, который говорит «Действительный» или «Недействительный». Я пробовал случаи, что-то вроде этого;

select *, case when function(stamp)=1 then 'Valid' else 'Invalid' 

но всегда дает мне ошибки. Я могу получить синтаксис неправильно. Может ли кто-нибудь помочь мне понять это?

ответ

5

Вы упускаете END для случая:

select *, case when function(stamp)=1 then 'Valid' else 'Invalid' end 
+0

oh я смотрю .. спасибо .. –

2

Попробуйте что-то вроде

select t.*, 
     case 
     when function(stamp) = 1 
      then 'Valid' 
      else 'Invalid' 
     end as valid_flag 
    from your_table t 
    where <whatever> 

Share и наслаждайтесь.

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