запрос на основе порядка значений столбцов в DB2

#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. Итак, мы ничего не можем сделать, чтобы получить результат? В таблице также есть другие столбцы