NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Martin
Člen
Avatar
Martin:13.1.2016 10:13

Ahojte, učím sa vo vlastnom záujme SQL a potreboval by som pomôcť s takou (pre vás) jednoduchou záležitosťou. Mám databázu, kde mám 5 tis. riadkov a cca 150 stĺpcov a ja by som potreboval v tejto dabatázy odstrániť všetky riadky, kde napríklad Stlpec5 obsahuje NULL hodnoty.

Ešte podotýka, že zatiaľ sa učím len na SQL v MS Access. Skúsil som teda:

DELETE FROM Databaza WHERE Stlpec5 is NULL;

Lenže access mi vypíše: "Dotaz musí obsahovať aspoň jedno cieľové pole", tak som skúsil:

DELETE * FROM Databaza WHERE Stlpec5 is NULL;

a vytvoril sa mi dotaz ako keby som zadal SELECT * FROM Databaza WHERE Stlpec5 is NULL;

Lenže ja by som potreboval, aby mi všetky riadky s NULL hodnotami v Stlpci1 odstránilo z tej pôvodnej tabulky. Ako teda nato? Môžete mi, prosím, poradiť? Ďakujem

 
Odpovědět
13.1.2016 10:13
Avatar
Odpovídá na Martin
Michal Štěpánek:13.1.2016 10:25

A ten sloupec "Stlpec5" se tak jmenuje? Zkusil jsi ten "SELECT" spustit? Vybralo ti to něco? Zkus to "is NULL" nahradit

= ""
Editováno 13.1.2016 10:27
Nahoru Odpovědět
13.1.2016 10:25
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Martin
Člen
Avatar
Martin:13.1.2016 10:40

Ja mám tie stĺpce pre uľahčenie zatiaľ pomenované len ako S1, S2, atď.. Takže proste uvažujeme názov "Stlpec5".

Select * from Databaza where Stlpec5 is NULL; normálne funguje. Vyhodí mi všetky riadky, pri ktorých platí, že stlpec5 obsahuje NULL.

=" " taktiež nefunguje

môže byť problém, že by Access nepodporoval funkciu DELETE? resp. že by nepodporoval ten tzv. data manipulation language?

 
Nahoru Odpovědět
13.1.2016 10:40
Avatar
Honza
Člen
Avatar
Honza:13.1.2016 12:52

To je divný, já jsem si vytvořil tabulku pojmenovanou "Test" a v ní sloupce S1, S2, S3.
Pokud zavolám dotaz níže, tak vše proběhne bez problémů.

delete from Test where s2 is null
Nahoru Odpovědět
13.1.2016 12:52
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Odpovídá na Martin
Michal Štěpánek:15.1.2016 15:39

Ještě mě napadlo, máš v té tabulce primární klíč?

Nahoru Odpovědět
15.1.2016 15:39
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Martin
Člen
Avatar
Martin:15.1.2016 16:25

Honza, neskúsaš ty ale náhodotu tie kódy v inom rozhraní? Pretože ja píšem o MS Access a tam naozaj to delete nefunguje.

Michal, myslím, že som v tej tabulke nedefinoval primárny kľúč? Môžeš mi, prosím, napísat aký súvis s tým môže mať primárny kľúč? Díky

 
Nahoru Odpovědět
15.1.2016 16:25
Avatar
Odpovídá na Martin
Michal Štěpánek:15.1.2016 18:07

Mám totiž pocit, že když jsem kdysi dělal jednu aplikaci na vyúčtování telefonů a použil jsem jako DB MS Access, tak mi to nechtělo dělat změny v tabulkách a ani mazat záznamy bez primárního klíče. Šlo mi jen přidávat a selectovat...

Nahoru Odpovědět
15.1.2016 18:07
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Honza
Člen
Avatar
Odpovídá na Martin
Honza:16.1.2016 18:09

Použil jsem MS Access a primární klíč v tabulce taky nemám. PK není povinný (i když by v každé tabulce být měl).

Nahoru Odpovědět
16.1.2016 18:09
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Honza
Člen
Avatar
Honza:16.1.2016 18:10

Kdyžtak uploadni někam ten tvůj access, zrada bude pravděpodobně v něčem jiném.

Nahoru Odpovědět
16.1.2016 18:10
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.