Как мне сделать так, чтобы вывелось конкретное значение между двумя

Рейтинг: 0Ответов: 2Опубликовано: 18.08.2023

Ситуация такая, у меня есть столбец, который я получил в результате расчета, в это столбце 2 значения, они могут быть как '?' и '?', так и '?' и 'значение' Мне нужно написать расчет, чтобы если у меня '?' и 'значение', то он выбирал значение а если заполненного значения нет ('?' и '?') то выбирал одно из '?' и '?' условие в том, что 'значение' может быть разным то есть '?' и 'fgdg' '?' и 'erwe' '?' и 'yury' и мне нужно чтобы он выбирал именно заполненное, не ссылаясь на название этого значения Господи, надеюсь понятно, потому что я сам запутался уже знак '?' это типа не заполненное

Ответы

▲ 1

Что-то типа такого, хотя я точно синтаксис не помню и в Oracle может отличаться:

select 
    case when col1='?' then 1 else 0 end,
    col1,
    col2,
    col3 
from data
order by 1
limit 1

Суть в том, чтобы отсортировать записи в таком порядке, чтобы вопросики шли заведомо позже других значений, ну и выбрать после этого первую запись.

▲ 1

'?' это типа не заполненное

если вы так обозначили null, то всё просто:

select max(col1), max(col2) from your_table