Wpis z mikrobloga

Chce wydobyć szczegóły dla kilkuset rekordów na podstawie wartości jednej kolumny (wartość jest unikatowa)
Zastanawiam się w jaki sposób to zrobić tak aby było szybko i dobrze:

1. SELECT kolumna1, kolumna2, kolumna3 WHERE kolumna1 in (300x wartość kolumna1)
2. SELECT kolumna1, kolumna2, kolumna3 WHERE kolumna = 'xxx' or 'xxx'
3. 300 x SELECT kolumna1, kolumna2, kolumna3 WHERE = 'xxx'
4. żadna z powyższych

#sql #programowanie #python
  • 20
@login_zajety_sic: wobec tego raczej nie zrobisz tego szybciej niż pythonem. Możesz sobie zainstalować bibliotekę pandas i wyniki pojedynczych zapytań (domyślam się, że masz to w jakiejś pętli?) wrzucać do dataframe'a i później sobie to zapisać do csv czy coś.
@login_zajety_sic: spróbuj coś takiego, niestety nie mam teraz dostępu do żadnej instancji db2 więc nie wiem czy ten kod się odpali :)
w każdym razie bez indeksu na tej unikatowej kolumnie nie licz na dobrą wydajność

with to_co_nas_interesuje as (
select klucz from (
select '2F5JMWE61C' as klucz from sysibm.sysdummy1
union all
select '2D11KJ289M' from sysibm.sysdummy1
-- i tak dalej
union all
select '2NM9HRJT1P' from sysibm.sysdummy1
) x
-- tu sztuczka
no nie, create volatile table powinno dzialac, nie trzeba miec zandych dodatkowych uprawnien


@kebabplz: Ok, może w db2, przyznaję - nie znam. W postgresie samo posiadanie selecta nie implikuje możliwości tworzenia tabel tymczasowych, więc nie przyszło mi to do głowy.