SQL: печать моих собственных сообщений в зависимости от вывода запроса - PullRequest
1 голос
/ 27 ноября 2009

как я могу напечатать свои собственные сообщения в зависимости от вывода SQL-запроса. Например:

print "got it" when select * from emp wherempno=10;  return atlest one record.
else " not presnet" when the above quesry returns 0 records

Я всего лишь один вопрос sql, а не код Pl / SQL. Я использую oracle 9 db.

Ответы [ 3 ]

1 голос
/ 27 ноября 2009

Это работает (проверено на OracleXE):

SELECT CASE WHEN COUNT(1) = 0 THEN 'not present' ELSE 'got it' END
FROM emp
WHERE mpno = 10
1 голос
/ 27 ноября 2009

Вы можете попытаться получить сумму в подзапросе и затем выборочно вернуть результат в операторе case.

В данный момент у меня нет доступа к oracle, поэтому синтаксис может быть не идеальным, но что-то вроде ниже должно работать

select
  case t.c
    when 0 then 'not presnet'
    else 'got it'
  end as result
  from
    (select count(*) as c from emp wherempno=10) t
0 голосов
/ 27 ноября 2009

Разве вы не можете использовать ROWCOUNT для определения количества затронутых строк, а затем объединить это с оператором IF для достижения того, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...