Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Dane nie muszą być w jednym wierszu, żeby je czytać SQLem.

Dzisiaj - ciekawostka, nie-narzędziowa, ale, jak najbardziej, techniczna!

SQL rulez!

Zainspirowany tematem
http://www.goldenline.pl/forum/2815466/sortowanie-rapo...

Jak, z czegoś takiego (i to w pliku tekstowym):
klucz1
10
Klucz2
20
Klucz3
30
-----------------------------------------
Klucz4
40


zrobić tabelę:
klucz1,10
Klucz2,20
Klucz3,30
Klucz4,40


Zrobiłem SPECJALNY przykład i filmik na ten temat.

Otóż - da się! A sam myślałem, że nie. Trzeba tylko zrobić parę sztuczek, a konkretnie dwie:

1. Przenieść tekst do jakiejś bazy, która umożliwi tzw. autoinkrementację, czyli powstanie pola numeru wiersza, który automatycznie ponumeruje nam wiersze, tworząc klucz unikalny dla tabeli, która go nie ma (trudno wymagać od pliku tekstowego, żeby miał taki klucz).

2. Złączyć tabelę z nią samą(!) po sprzężeniu alias1.ID=alias2.ID-1. Alias1 i alias2 to ta sama tabela!

Film:
http://afin.net/webcasts/HowTo_ReadTheNextLineFromTxtF...

I, oczywiście, dla maniaków - SQLek:
SELECT
[Alias1.PoleTekstowe] AS [Klucz], [Alias2.PoleTekstowe] AS [Wartosc]
FROM MyTable Alias1 RIGHT OUTER JOIN MyTable Alias2 ON Alias1.ID=Alias2.ID-1
WHERE [Alias1.PoleTekstowe] LIKE 'Klucz%'Wojciech Gardziński edytował(a) ten post dnia 29.02.12 o godzinie 13:51