Разбор строк данных в plsql - PullRequest
1 голос
/ 24 июня 2011

Это довольно неуклюже.

Исходная информация: Есть неуклюжий запрос выбора, в конечном итоге возвращающий 0 или 1 в зависимости от нескольких условий. Обычно можно выбрать только одну строку (другие данные обрезаны по месту и т. Д.). Проблема возникает, когда есть больше строк для анализа. Таким образом, данные на самом деле выглядит следующим образом:

Status
0
1

вместо

Status
1

Проблема: В ответ требуется только одна строка данных, т. Е. Если в любой строке присутствует 1, возвращается 1, в противном случае 0.

Условие: Это должно быть сделано только в запросе (без переменных, если и т. Д.).

Заранее спасибо.

1 Ответ

4 голосов
/ 24 июня 2011

Если вы уверены, что 1 и 0 являются единственными возвращаемыми значениями, не можете ли вы использовать максимальное значение для этого запроса, чтобы увидеть любые 1 с ..?

select max(id) result
  from (
  select 1 id from dual
  union all
  select 0 id from dual
)

    RESULT
----------
         1

  1  select max(id)
  2    from (
  3    select 0 id from dual
  4    union all
  5    select 0 id from dual
  6    union all
  7    select 0 id from dual
  8* )
SQL> /

   MAX(ID)
----------
         0
...