Mam tabelę i muszę wybrać wszystkie wiersze z pustą wartością dla fk_fc_id
pola (jako preludium do ich usunięcia),
Column | Type | Modifiers
---------------+-----------------------------+------------------------------------------------------------
di_timestamp | timestamp without time zone |
di_item_value | character varying(10) |
fk_fc_id | integer |
di_id | integer | not null default nextval('data_item_di_id_seq1'::regclass)
Jednak to nie działa,
# select fk_fc_id,di_timestamp,di_item_value from data_item where fk_fc_id="";
ERROR: zero-length delimited identifier at or near """"
LINE 1: ...di_timestamp,di_item_value from data_item where fk_fc_id="";
^
Próbowanie Null
też nie działa.
Byłbym bardzo wdzięczny, gdyby ktoś miał jakieś sugestie, jak to rozwiązać.
postgresql
James
źródło
źródło
null
pomocą=
operatora zawsze zwrócinull
i spowoduje wykluczenie tego wiersza.Odpowiedzi:
To nie jest tak naprawdę związane z administrowaniem bazą danych, ani tak naprawdę nie dotyczy PostgreSQL, ale jak na @foibs odpowiedział, powinieneś spojrzeć na IS NULL :
źródło
Musisz użyć pojedynczego cytatu:
źródło
integer
. Jak można przeczytać w komentarzach pod przyjętą odpowiedzią, OP zdecydował się na porównanie z pustym ciągiem znaków tylko dlatego, że nie wymyślił, jak poprawnie porównać z wartością zerową (po co tak naprawdę chcieli).