#sql #db2
#sql #db2
Вопрос:
В DB2 я получаю результат следующим образом. Но я хочу получить подробную информацию на основе значения столбца, которое соответствует порядку Y
Name Ind
----------------
syed N
syed Y
syed N
shaik Y
shaik N
shaik N
Вывод должен быть следующим
shaik Y
shaik N
shaik N
syed N
syed Y
syed N
Значения имен, которые имеют первую строку в качестве индикатора, должны быть первыми.
Есть идеи
Комментарии:
1. Четко опишите, что вы хотите видеть и какова логика — не давайте нам угадывать!
Ответ №1:
Это отвечает на исходную версию вопроса.
Это звучит как два ключа в order by
:
order by name, ind desc
Ваш вопрос намекает на то, что вы можете захотеть, чтобы имена с 'Y'
anywhere были первыми, предполагая, что не все имена могут иметь 'Y'
. В этом случае вы можете использовать оконные функции в order by
:
order by max(ind) over (partition by name) desc, -- names with 'Y's first
name,
ind desc
Комментарии:
1. @Gardon, я обновляю свой вопрос. Мой вопрос немного отличается. Извинения
2. @Syed . . . Невежливо изменять вопрос после того, как на него был дан ответ, особенно таким образом, который делает ответ недействительным и непонятным. И в базе данных нет даты создания, если она явно не указана в строке.
3. Я принимаю и приношу извинения за это, Гордон. Но я неправильно истолковал вопрос.
4. @Syed . . . . По-видимому, вы не можете делать то, что хотите, если это единственные столбцы в таблице. Таблицы SQL представляют собой неупорядоченные наборы (теперь я вижу разницу). Если у вас нет столбца, задающего порядок, порядок строк отсутствует.
5. Итак, мы ничего не можем сделать, чтобы получить результат? В таблице также есть другие столбцы