powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вывод данных
20 сообщений из 20, страница 1 из 1
вывод данных
    #39677743
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, есть запрос который выводи данные показанные на рисунке. Подскажите как сделать, чтобы "Текущий счет с БПК" был первым в списке
Код: plsql
1.
2.
3.
4.
5.
6.
7.
select t.CONTRACTTYPE ID,SUBSTR(t.CONTRACTTYPENAME,1,255) NAME
from contracttypesref t, CONTRACTTYPESEXT te
where te.contracttype = t.contracttype
  and te.isnotactual is null
union
select -1 ID, 'По всем' NAME from Dual
order by id 
...
Рейтинг: 0 / 0
вывод данных
    #39677749
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
order by decode
...
Рейтинг: 0 / 0
вывод данных
    #39677750
alwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrovichvanya,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select t.CONTRACTTYPE ID,SUBSTR(t.CONTRACTTYPENAME,1,255) NAME
from contracttypesref t, CONTRACTTYPESEXT te
where te.contracttype = t.contracttype
  and te.isnotactual is null
union
select -1 ID, 'По всем' NAME from Dual

order by (CASE SUBSTR(t.CONTRACTTYPENAME,1,255)
WHEN 'Текущий счет с БПК' THEN 1
ELSE 2 END), id 
...
Рейтинг: 0 / 0
вывод данных
    #39677755
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alwan,
...
Рейтинг: 0 / 0
вывод данных
    #39677756
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alwan, ошибка возникает
...
Рейтинг: 0 / 0
вывод данных
    #39677757
merch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanya, что ж ты такой..


Код: plsql
1.
order by case when name = 'Текущий счет с БПК' then 0 else 1 end
...
Рейтинг: 0 / 0
вывод данных
    #39677758
alwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrovichvanya,

Пропустил, что на этой колонке у вас алиас. В ORDER BY заменить на этот алиас надо просто:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select t.CONTRACTTYPE ID,SUBSTR(t.CONTRACTTYPENAME,1,255) NAME
from contracttypesref t, CONTRACTTYPESEXT te
where te.contracttype = t.contracttype
  and te.isnotactual is null
union
select -1 ID, 'По всем' NAME from Dual

order by (CASE NAME
WHEN 'Текущий счет с БПК' THEN 1
ELSE 2 END), id 
...
Рейтинг: 0 / 0
вывод данных
    #39677760
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanya,

... ELSE 2 END), t.CONTRACTTYPE
...
Рейтинг: 0 / 0
вывод данных
    #39677768
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не помогли оба варианта( ошибка та же осталась
...
Рейтинг: 0 / 0
вывод данных
    #39677770
alwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrovichvanya,

ну блин...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select * from 
(select t.CONTRACTTYPE ID,SUBSTR(t.CONTRACTTYPENAME,1,255) NAME
from contracttypesref t, CONTRACTTYPESEXT te
where te.contracttype = t.contracttype
  and te.isnotactual is null
union
select -1 ID, 'По всем' NAME from Dual)

order by (CASE NAME
WHEN 'Текущий счет с БПК' THEN 1
ELSE 2 END), id 
...
Рейтинг: 0 / 0
вывод данных
    #39677774
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alwan,

отработало без ошибок, но вывод данных так и не изменился
...
Рейтинг: 0 / 0
вывод данных
    #39677778
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaalwan,

отработало без ошибок, но вывод данных так и не изменился

Потому что 'Текущий счет с БПК' и 'Текущий счёт с БПК' - разные строки :)
Когда уже научитесь обращаться к идентификаторам...
...
Рейтинг: 0 / 0
вывод данных
    #39677781
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
order by (decode(id, 1, 0, 1)), id
...
Рейтинг: 0 / 0
вывод данных
    #39677785
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, сделал так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select * from (
select t.CONTRACTTYPE ID,SUBSTR(t.CONTRACTTYPENAME,1,255) NAME
from contracttypesref t, CONTRACTTYPESEXT te
where te.contracttype = t.contracttype
  and te.isnotactual is null
union
select -1 ID, 'По всем' NAME from Dual) 
 order by case when id = 1 then 0 else 1 end, id
...
Рейтинг: 0 / 0
вывод данных
    #39677787
alwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шК0ДЕР,

Нет уж, сказали чтобы "Текущий счет с БПК" первым был - получите, может у них там CONTRACTTYPE динамический, откуда я знаю =)
А то что буковки не те в задаче, ну что ж, бывает, заодно внимательность потренировали.

Но по id вы правы конечно)
...
Рейтинг: 0 / 0
вывод данных
    #39677789
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alwanНет уж, сказали чтобы "Текущий счет с БПК" первым был - получитеВот когда какой-нибудь умник переименует значение, тогда и поймешь... Надо воспринимать ТЗ не буквально, а думать головой.
...
Рейтинг: 0 / 0
вывод данных
    #39677793
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шК0ДЕРalwanНет уж, сказали чтобы "Текущий счет с БПК" первым был - получитеВот когда какой-нибудь умник переименует значение, тогда и поймешь... Надо воспринимать ТЗ не буквально, а думать головой.

А смысл переиначивать ТЗ под себя?
Человек просил "Текущий счет с БПК" поставить первым - его и поставили, а то что этой записи не было в выборке - некоректно написанное ТЗ.

А вот переводить на какие-то другие параметры - это как минимум надо переспросить у постановщика задач как бы не было это удобнее для разработки.
...
Рейтинг: 0 / 0
вывод данных
    #39677796
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXL,

прально. инициатива наказуема. ты же не аналитик всетаки
...
Рейтинг: 0 / 0
вывод данных
    #39677802
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--MaximaXXL,

прально. инициатива наказуема. ты же не аналитик всетаки

100%. Если я вижу что мне что-то "удобнее", я иду к аналитику, мы это обговариваем и если аналитику это подходит - он правит спеку под меня. Но никак не аналитик поставил чадачу, написал под это спеку, я написал код забив на спеку (потому что мне так лучше), код прошел тесты (потому как мы работали с одним набором данных "ID") и завалился на проде (ну там другие ID)

А по селекту автора, если бы правил я:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select * from (
select t.CONTRACTTYPE ID,SUBSTR(t.CONTRACTTYPENAME,1,255) NAME
from contracttypesref t, CONTRACTTYPESEXT te
where te.contracttype = t.contracttype
  and te.isnotactual is null
union all
select -1 ID, 'По всем' NAME from Dual)
order by decode(Name, 'Текущий счет с БПК',0), id 



Т.е. если нет необходимости в distinct - использовал бы union all (как true practice)
И вернул бы ему сортировку по id т.к. надо не разрушить старый код
...
Рейтинг: 0 / 0
вывод данных
    #39677872
alwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шК0ДЕРВот когда какой-нибудь умник переименует значение, тогда и поймешь... Надо воспринимать ТЗ не буквально, а думать головой.

Я же и не говорю что это правильно. Но в контексте форума не считаю, что нужно додумывать и делать предположения об архитектуре БД ТСа. Тем более, что фактически решение озвучил AmKad первым же комментом (на момент написания своего коммента его не видел, иначе не писал бы)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вывод данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]