Avatar billede steen_hansen Forsker
28. juli 2016 - 17:53 Der er 22 kommentarer og
2 løsninger

SELECT * FROM table WHERE kolonne1 = "a" And kolonne 2 <> ""

Den driller

Vælg alt fra kolonne1 som indeholder værdien "a", men kun dem, hvor der er et indhold i kolonne 2 (skal ikke medtage dem, hvor der ikke er noget indhold i kolonne2

Håber du kan hjælpe. Det burde være så simpelt.
Avatar billede michael_stim Ekspert
28. juli 2016 - 18:42 #1
kolonne2 <> Null
isNull(kolonne2)
Avatar billede michael_stim Ekspert
28. juli 2016 - 18:44 #2
Den måtte IKKE väre tom:
NOT isNull(kolonne2)
Avatar billede steen_hansen Forsker
28. juli 2016 - 18:47 #3
Hej Michael

Hvordan?

Set RS = Conn.Execute("SELECT * FROM users WHERE role = '" & "a" & "' ORDER BY lastname ASC")
Avatar billede michael_stim Ekspert
28. juli 2016 - 18:48 #4
Set RS = Conn.Execute("SELECT * FROM users WHERE kolonne2 <> Null AND role = '" & "a" & "' ORDER BY lastname ASC")
Avatar billede steen_hansen Forsker
28. juli 2016 - 18:49 #5
Set RS = Conn.Execute("SELECT * FROM users WHERE role = '" & "a" & "' NOT isNull(kolonne2) ORDER BY lastname ASC")
Avatar billede softspot Forsker
28. juli 2016 - 18:51 #6
Der er ingen grund til at sætte værdien a i en separat streng:

Set RS = Conn.Execute("SELECT * FROM users WHERE role = 'a' AND kolonne2 IS NOT NULL ORDER BY lastname ASC")

Jeg plejer at anvende IS NOT NULL, hvis det er en SQL Server.
Avatar billede steen_hansen Forsker
28. juli 2016 - 18:55 #7
Jeg får en '80040e14'

Jeg kommer lige med SQL'en, øjeblik
Avatar billede steen_hansen Forsker
28. juli 2016 - 18:58 #8
Det var mig, der havde efterladt <>

Tak for hjælpen, Michael :)
Avatar billede softspot Forsker
28. juli 2016 - 19:03 #9
Hvilken SQL nåede du frem til?
Avatar billede steen_hansen Forsker
28. juli 2016 - 19:32 #10
Set RS = Conn.Execute("SELECT * FROM users WHERE role = 'a' AND kolonne2 IS NOT NULL ORDER BY lastname ASC")

Den gør lige nøjagtigt det den skal :)
Avatar billede softspot Forsker
28. juli 2016 - 20:16 #11
OK, perfekt! :-)
Avatar billede arne_v Ekspert
28. juli 2016 - 23:38 #12
Det er vigtigt at bruge IS NOT NULL fremfor <> NULL.
Avatar billede steen_hansen Forsker
31. juli 2016 - 10:00 #13
Hej alle

Standardværdi på kolonne2 er sat til NULL

Hvis jeg nu laver en update på kolonne2, som ingenting indeholder, så bliver <italic>NULL</italic> fjernet, recorden er blanket. Dvs. den bliver trukket med ud i løkken. Og det skal den ikke, den indeholder ikke noget..

Hvordan kan man bibeholde standardværdien NULL, når man updater med = ""?
Avatar billede arne_v Ekspert
31. juli 2016 - 16:16 #14
UPDATE ... SET ..., kolonne2=NULL

eller undlade at opdatere kolonne2 ??
Avatar billede steen_hansen Forsker
31. juli 2016 - 17:24 #15
Jeg har prøve at sætte NULL ind via PHPMyAdmin. Men så var værdien NULL, og det blev trukket ud på siden. Så står der NULL på siden, og det er tilsyneladende ikke det, der menes med standardværdien.

Så burde jeg måske lige så godt skrive, at hvis Request. Form = "" Then er værdien 0 (nul). Og så trække de records ud, der er forskellig fra 0?
Avatar billede steen_hansen Forsker
31. juli 2016 - 17:27 #16
Jeg kan forøvrigt ikke undlade at opdatere kolonne2, den vil blive brugt flittigt :)
Avatar billede steen_hansen Forsker
31. juli 2016 - 17:28 #17
Ovs, Hvis jeg ændrer proceduren, kan jeg jo ikke benytte IS NOT NULL. Og så er jeg tilbage ved udgangspunktet.
Avatar billede steen_hansen Forsker
31. juli 2016 - 17:42 #18
Hvis man står på fanebladet "Vis" og dobbeltklikker i en celle for at redigere direkte fra PHPMyAdmins, har man mulighed for at markere i en checkboks "NULL". Men at skrive NULL inde i cellen opfattes bare som tekst, og så er standardværdien ikke NULL længere. Så det kan godt lade sig gøre, tilsyneladende. Men jeg aner ikke hvordan jeg bibeholder <italic>NULL</italic>, altså 0-ingenting-zip
Avatar billede arne_v Ekspert
31. juli 2016 - 17:44 #19
Hvis du i SQL bruger NULL uden '' omkring, saa er det NULL ikke 'NULL'.
Avatar billede steen_hansen Forsker
31. juli 2016 - 17:56 #20
Ok. Men hvis jeg opdaterer med "" (ingenting), så er cellen blank. Der står ikke 'NULL'. Og så bliver den trukket ud på siden.

Kan man på en eller anden måde lave WHERE x <> "" i kolonne2, Then træk ud på siden? Så kan jeg update med ""
Avatar billede arne_v Ekspert
31. juli 2016 - 18:18 #21
Ja.

SELECT ... WHERE ... AND (kolonne IS NOT NULL AND kolonne <> '')

SELECT ... WHERE ... AND (kolonne IS NULL OR kolonne = '')
Avatar billede steen_hansen Forsker
31. juli 2016 - 18:47 #22
Det virkede sg... søreme! :)

Set RSfousers = Conn.Execute("SELECT vRole, foinitials, folocation1, folocation2, phone, email FROM lbfo WHERE vRole = 'foo' And (folocation1 IS NOT NULL And folocation1 <> '') ORDER BY foinitials ASC")
Avatar billede Slettet bruger
03. august 2016 - 11:21 #23
spam
Avatar billede Slettet bruger
03. august 2016 - 11:22 #24
spam
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester