Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
 Аватар для malor
48 / 44 / 3
Регистрация: 02.07.2007
Сообщений: 2,568

Вывод записей в соответствии с заданным списком. Не ASC, не DSC, а указанная мной последовательность.

07.08.2008, 14:48. Показов 3016. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот что имею:
Code
1
2
3
4
5
6
7
8
===========================================================
ID_на_запись_в_таблице_с_фамилиями         Возраст_чела
===========================================================
2                                   18      
4                                   31
6                                   42
1                                   28
5                                   55
И когда я буду подгружать в грид эту таблицу(точнее - уже подгрузил, осталось отсортировать), то я хочу чтобы записи были отображены в определенном порядке, который мне известен(храню либо в массиве, либо в строке через запятую, ... короче, так как это здесь окажется удобней): 4, 6, 5, 1, 2.

Как реализовать ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.08.2008, 14:48
Ответы с готовыми решениями:

Вывод записей в поле со списком в зависимости от другого поля со списком
Уважаемые асы access, помогите пожалуйста! Сразу хочу признаться, я совсем чайник, только учусь.. Помогите с поиском записей (поле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
3 / 3 / 0
Регистрация: 07.08.2008
Сообщений: 32
07.08.2008, 16:06
т.е. нужно вывести записи в таком порядке:
4
6
5
1
2
?
id думаю уникален, тогда можно типа такого сделать - один массив с этой последовательностью
b = array(4, 6, 5)
второй с результатами из базы, причем id не значения а индексы:
result = array(2=>"возраст чела", 4=>"возраст другого чела", 6=>"возраст третьего чела")
и выводим:
for(i=0; и т.д.) {
print result[b[i]];
}
вообщем, программно что-то типа такого. с SQL server не работал, поэтому мож я совсем не то сказал, так что не бейте сильно... но алгоритм думаю ясен..

зы: в пхп это можно легче сделать - сортировать один массив, учитывая значения другого
0
Администратор
 Аватар для mik-a-el
87856 / 53177 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
07.08.2008, 16:20
Цитата Сообщение от malor
И когда я буду подгружать в грид эту таблицу(точнее - уже подгрузил, осталось отсортировать), то я хочу чтобы записи были отображены в определенном порядке, который мне известен(храню либо в массиве, либо в строке через запятую, ... короче, так как это здесь окажется удобней): 4, 6, 5, 1, 2.

Как реализовать ?
Code
1
2
3
4
5
6
7
8
SELECT sm.*
FROM (
    SELECT 4 AS Ord
    UNION ALL SELECT 6
    UNION ALL SELECT 5
    UNION ALL SELECT 1
    UNION ALL SELECT 2) t
    LEFT JOIN SomeTable sm ON sm.SomeField = t.Ord
0
 Аватар для malor
48 / 44 / 3
Регистрация: 02.07.2007
Сообщений: 2,568
07.08.2008, 23:31  [ТС]
Цитата Сообщение от mik-a-el Посмотреть сообщение
Code
1
2
3
4
5
6
7
8
SELECT sm.*
FROM (
    SELECT 4 AS Ord
    UNION ALL SELECT 6
    UNION ALL SELECT 5
    UNION ALL SELECT 1
    UNION ALL SELECT 2) t
    LEFT JOIN SomeTable sm ON sm.SomeField = t.Ord
В блоке :
Code
1
2
3
4
5
SELECT 4 AS Ord
    UNION ALL SELECT 6
    UNION ALL SELECT 5
    UNION ALL SELECT 1
    UNION ALL SELECT 2
перечислены все возможные варианты цифр в желаемом порядке. Но допустим в грид у нас попало мЕньшее количество строк, не пять как в примере, а допустим - три:
Code
1
2
3
4
5
6
===========================================================
ID_на_запись_в_таблице_с_фамилиями         Возраст_чела
===========================================================
2                       18      
4                       31
6                       42
Тогда SQL-запрос собирая директивой LEFT JOIN создаст такую сводную табличку:
Code
1
2
3
4
5
4                 4                 31
6                 6                 42
5                 NULL            NULL  
1                 NULL            NULL
2                 2                 18
Т.к. в самой первой строке указано SELECT sm.*, то значит в грид попадет вот что:
Code
1
2
3
4
5
                 4                 31
                 6                 42
                 NULL            NULL  
                 NULL            NULL
                 2                 18
Две строки будут пустыми в гриде(этакий пустой участок)? Или он их отбросит?..
Ничего я тут не исказил ?
0
Администратор
 Аватар для mik-a-el
87856 / 53177 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
08.08.2008, 10:12
Тогда так:
Code
1
2
3
4
5
6
7
8
9
10
11
SELECT 
    sm.*
FROM (
    SELECT 4 AS Ord
    UNION ALL SELECT 6
    UNION ALL SELECT 5
    UNION ALL SELECT 1
    UNION ALL SELECT 2) t
    LEFT JOIN SomeTable sm ON sm.SomeField = t.Ord
WHERE
    sm.SomeField IS NOT NULL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru