Python SQL - test hodnoty NULL

Z GeoWikiCZ
Verze z 31. 5. 2007, 14:51, kterou vytvořil Landa (diskuse | příspěvky) (pridany kategorie (prog, python,databaze))

Mějme tabulku

adresy
jmeno
prijmeni
email

kde atribut email může nabývat hodnoty null. Nasledující skript vypisuje všechny záznamy, které mají definovanou emailovou adresu. Bez testu if row[2]: by pro hodnoty NULL skript skončil výjimkou.

#!/usr/bin/python

try:
    import psycopg2, sys

    select = """SELECT jmeno, prijmeni, email FROM adresy
             """
    if len(sys.argv)==2:        # při volání mohu doplnit podminku WHERE
        select += sys.argv[1]
    select += ";"

    conn = psycopg2.connect("")
    cur  = conn.cursor()
    cur.execute(select)
    rows = cur.fetchall()

    for row in rows:
        if row[2]:   # podmínka je splněna, pokud daná hodnota není NULL
            print ' "' + row[0], row[1] + '" <' + row[2] + '>,'

except:
    print "problem ..."