Member 13471028 Ответов: 1

Как отсортировать строку таблицы по определенной частоте


В моей таблице есть следующие столбцы:
ex_id : первичный ключ INT
название : тип varchar
редактировать: чар

Столбец "Edit" может иметь только значения " Y " и "N". Я хотел бы упорядочить строку таким образом, чтобы после каждых 2 'N' показывался 1 'Y'.

Например
EX_ID |NAME / EDIT
-----------------------------------
1 / The |N
2 / Небо / Н
3 / So / Y
4 / Синий |N
5 / In |N
6 / Малибу / Y

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

Что я уже пробовал:

Выберите ex_id, имя, изменить,
Случае когда редактирование='Y' и ex_id&ЛТ;&ГТ;(выбрать максимум(ex_id) от упражнения), то ex_id-3
Когда edit='N' и ex_id< & gt; (выберите MIN (ex_id) из упражнения), то ex_id+3
Еще ex_id конца
из упражнения
ЗАКАЗ ПО 4 ASC

1 Ответов

Рейтинг:
1

Santosh kumar Pithani

SELECT Ex_Id,
       Name,
       case when (EX_ID%3)<>0 then 'N' else 'Y' end Edit 
 from Exercise; 


EX_ID |NAME |EDIT
-----------------------------------
1 | The |N
2 | Sky |N
3 | So |Y
4 | Blue |N
5 | In |N
6 | Malibu |Y


Member 13471028

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

EX_ID |NAME / EDIT
-----------------------------------
1 / The |N
2 / Небо / Н
3 / Синий |N
4 / In |N
5 / Next |N
6 / To |N
7 / So / Y
8 / Малибу / Y
9 / Вы |Y

И я хочу заказать его так, чтобы получить таблицу, отображаемую как то, что я привел в качестве примера в вопросе :

EX_ID |NAME / EDIT
-----------------------------------
1 / The |N
2 / Небо / Н
7 / So / Y
3 / Синий |N
4 / In |N
8 / Малибу / Y
5 / Next |N
6 / TO |N
9 / Вы |Y

Еще Раз Спасибо !

Santosh kumar Pithani

Выберите * FROM #Temp ORDER BY name, ex_id;

Santosh kumar Pithani

дайте мне знать, если ваши табличные данные отличаются.