Mam tabelę A, poniżej, gdzie dla każdego unikalnego identyfikatora są trzy kody o pewnej wartości.Jak można przestawić tabelę w DB2?
ID Code Value
---------------------
11 1 x
11 2 y
11 3 z
12 1 p
12 2 q
12 3 r
13 1 l
13 2 m
13 3 n
mam drugą w tabeli B w formacie jak poniżej:
Id Code1_Val Code2_Val Code3_Val
Tu jest tylko jeden wiersz dla każdego unikalnego identyfikatora. Chcę wypełnić tę drugą tabelę B z pierwszej tabeli A dla każdego identyfikatora z pierwszej tabeli.
Dla pierwszej tabeli A powyżej, druga tabela B powinien wyjść jak:
Id Code1_Val Code2_Val Code3_Val
---------------------------------------------
11 x y z
12 p q r
13 l m n
Jak mogę to osiągnąć w jednym zapytaniu SQL?
jest sposób, aby to zrobić dynamicznie, jeśli tabela A otrzyma nowy kod lub dwa? – John
Niełatwo, i potrzebujesz również dynamicznego SQL. Jestem prawie pewny, że istnieją przykłady gdzie indziej tutaj - zasadniczo, musisz przeczytać tabele schematów "informacji o systemie", zmontować zapytanie w ten sposób, a następnie wykonać je. Biorąc pod uwagę, że ogólne wstawienia do 'A' powinny być dość rzadkie, łatwiej byłoby po prostu zaktualizować instrukcje i kod klienta ... W przeciwnym razie zbliżasz się do terytorium EAV, które jest (nieco) powiązane, ale trochę inne . –
[Istnieje lepsza odpowiedź, która uzyskuje dostęp do tabeli tylko raz] (https://stackoverflow.com/a/23207503/521799) –