У меня есть таблица со структурой ниже.
У меня нет контроля над сменой стола.
В нем есть три столбца: имя студента, идентификатор студента, идентификатор имени
Теперь имя студента может быть любым количеством слов. Ровно одно слово придет в один ряд. В зависимости от количества слов будет введен name_id и student_id будет повторен.
Структура будет выглядеть примерно так:
произнесите имя1: Рам Лаксман Прасад Шарма
и имя2: Пандит Гангадхар Видьядхар Майадхар Омкарнатх Шастри
Таким образом, таблица будет выглядеть так:
student_name | student_id | name_id
-------------------------------------------------
Ram 1 1
Laxman 1 2
Prasad 1 3
Sharma 1 4
Pandit 2 1
Gangadhar 2 2
Vidyadhar 2 3
Mayadhar 2 4
Omkarnath 2 5
Shastri 2 6
Надеюсь, я четко объяснил структуру.
Теперь я хочу написать запрос, чтобы прочитать только первые четыре имени на одного учащегося. Однако, если количество имен меньше четырех, пустая строка должна идти, а если ее больше четырех, первые четыре должны идти, а остальные просто игнорируются.
Мне нужно поместить его только в один запрос на выборку, так как этот запрос будет передан в весеннюю пакетную программу. Но я не понимаю, как пройтись по столбцу имен, чтобы взять первые четыре имени для каждого студента.
Как спроектировать этот sql для базы данных DB2 v8 ??
Спасибо за чтение.