Witam serdecznie
chciałabym się zapytać , czy jest możliwość wykonania zapytania SQL, które sprawdza rekordy puste. Jeśli rekord jest pusty to zapisuje to do innej kolumny, ale tylko nazwę kolumny w której brakuje. Zobrazuję to:
tabela
nazwa_kol_1 nazwa_kol_2 nazwa_kol_3 kol_nie_sprawdzana kol_zapis
a null b a
b null z null
null s null b
a null null null
po wykonania zapytania , tabela powinna przedstawiać się następująco:
nazwa_kol_1 nazwa_kol_2 nazwa_kol_3 kol_nie_sprawdzana kol_zapis
a null b a nazwa_kol_2
null null z null nazwa_kol_1 nazwa_kol_2
null s null b nazwa_kol_1 nazwa_kol_3
a null null null nazwa_kol_2 nazwa_kol_3
Baza jest na Access , próbowałam iif, ale zapisywało mi tyko pierwszy pusty rekord i przechodzi do następnego wiersza.
Tak próbowałam:
1)
stmt.executeUpdate("UPDATE tabela "
+ " SET kol_zapis = If [nazwa_kol_1] IS NULL Then"
+ "[kol_zapis] = 'brak nazwa_kol_1' "
+ " ElseIf [nazwa_kol_2] IS NULL Then"
+ " [kol_zapis] = 'brak nazwa_kol_2' "
+ " ElseIf [nazwa_kol_3] IS NULL Then"
+ " [kol_zapis] = 'brak nazwa_kol_3' "
+ " Else"
+ " [kol_zapis] = ''"
+ " End If End If");
zwraca błąd :
java.sql.SQLException: General error
2)
stmt.executeUpdate("UPDATE tabela "
+ " SET kol_zapis = kol_zapis & "
+ " IIf ([nazwa_kol_1] IS NULL, 'brak nazwa_kol_1 ' , "
+ " IIf ([nazwa_kol_2] IS NULL, 'brak nazwa_kol_2 ' , "
+ " IIf ([nazwa_kol_3] IS NULL, 'brak nazwa_kol_3 ', '' )))");
tu nie zwraca błędu, ale łapie pierwszy pusty rekord i przechodzi do następnego wiersza
Bardzo przejmie proszę o wskazówkę