Trudne zadania SQL

Zadania
Poniższe zadania muszą być rozwiązane za pomocą czystego SQLa (bez żadnych proceduralnych dodatków typu PL/SQL). Każde zadanie można i trzeba rozwiązać za pomocą jednego polecenia SQL.
  1. Dany jest łańcuch ‚100,130,150’ (lub inny o podobnym formacie). Znajdź pracowników o tych identyfikatorach.
  2. Znajdź pracowników, których nazwiska zawierają zadaną przez użytkownika liczbę liter ‘a’. Litery nie muszą być obok siebie.
  3. Dany jest stos (na początku pusty). W tabeli znajduje się lista operacji wstawienia i usunięcia wartości. Tabela składa się z trzech atrybutów:
    1. Numer porządkowy operacji
    2. Typ operacji (wstaw/usuń)
    3. Wstawiana wartość (null dla usuń).
    Znajdź ostateczny stan stosu.
  4. Dana jest kolejka FIFO (na początku pusta). W tabeli znajduje się lista operacji wstawienia i usunięcia wartości. Tabela składa się z trzech atrybutów:
    1. Numer porządkowy operacji
    2. Typ operacji (wstaw/usuń)
    3. Wstawiana wartość (null dla usuń).
    Znajdź ostateczny stan kolejki.
  5. Dany jest ciąg unikalnych liczb z dziurami. Znajdź najmniejszą wartość której nie ma w tym ciągu (>=1). Ciąg ten jest reprezentowany przez tabelę o jednym atrybucie liczbowym. Przykładowo, dla tabeli w której jest ciąg liczb 1,2,4,5,7 zwrócona zostanie 3. Dla tabeli, w której jest ciąg liczb 1,2,3,4,5 zwrócona zostanie 6.
  6. Dany jest ciąg unikalnych liczb z dziurami (>=1). Ciąg ten jest reprezentowany przez tabelę o jednym atrybucie liczbowym. Znajdź długości kolejnych ciągłych grup liczb. Przykładowo, dla 5,6,7,10,11,20,21,22,23 zostanie zwrócone: 3,2,4.
  7. Wygeneruj zadaną liczbę wierszy (to co w nich będzie jest dowolne).
  8. Dany jest dowolny łańcuch. Zamień każdą jego literę na wiersz. Przykładowo, dla łańcucha ‘kotek’ zostaną zwrócone kolejno k,o,t,e i k.
  9. Stwórz tabelę z atrybutem do którego można zapisać dowolny łańcuch nie zawierający liter. Warunek CHECK nie może być długi (nie wolno wymieniać kolejno liter w warunku ani wykorzystywać wyrażeń regularnych)
  10. Zakładając, że nazwa zespołu składa się z 2 wyrazów rozdzielonych spacją, zamień ich kolejność. Nie używaj operatora konkatenacji, podzapytań (tylko funkcje wierszowe).
  11. Znajdź pary pracowników, dla których pierwsze nazwisko ma sufiks, który jest prefiksem drugiego nazwiska. Długość tej „części wspólnej” może być dowolna, ale nie krótsza niż 3 znaki
  12. Wygeneruj ciąg fibonacciego o zadanej długości.
  13. Napisz zapytanie generujące wszystkie permutacje liczb z zakresu 1 do n. Zapytanie musi być oparte o zmienną podstawienia, która definiuje n. Wynik ma mieć postać tabeli z 3 kolumnami:
    1. Identyfikator permutacji (generowany w dowolny sposób)
    2. Numer porządkowy liczby w permutacji
    3. Liczba
  14. Napisz zapytanie generujące wszystkie k elementowe kombinacje liczb z zakresu 1 do n. Zapytanie musi być oparte o zmienne podstawienia, która definiują n i k. Wynik ma mieć postać tabeli z 2 kolumnami:
    1. Identyfikator kombinacji (generowany w dowolny sposób)
    2. Liczba