Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:19 Der er 19 kommentarer og
1 løsning

Select statement virker ikke

Hvorfor virker denne select statement ikke?

SELECT TOP 2 * FROM tblArtikler WHERE MenuUrl = '1' AND Person <> '1'

Problemet er <> 1' - det kan jeg ikke få til at virke, men det burde kunne lade sig gøre.
Avatar billede rou Nybegynder
17. marts 2002 - 20:24 #1
Får du en fejl?

Er du sikker på at Person og MenuUrl er char felter?
Avatar billede nute Nybegynder
17. marts 2002 - 20:24 #2
du kan ikke bruke <> på tekst kolonner. Du skal sannsynligvis benytte NOT LIKE

/nute
Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:29 #3
Ja, feltet er nvarchar-format.
Jeg får ingen fejl, men får ikke vist data, selvom der ligger data som ikke har værdien "1" i "Person".
Jeg forsøger lige med nute's kommentar.
Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:31 #4
Desværre, det virker stadig ikke...
Jeg har forsøgt med:
SELECT TOP 2 * FROM tblArtikler WHERE MenuUrl = '1' AND Person NOT LIKE '1'
Avatar billede nute Nybegynder
17. marts 2002 - 20:32 #5
hvilken feil får du ?
Avatar billede terry Ekspert
17. marts 2002 - 20:33 #6
you CAN use <> on text fields, so as long as MenuUrl and Person are text fields it should work
Avatar billede terry Ekspert
17. marts 2002 - 20:34 #7
IF MenuUrl is numeric then

SELECT TOP 2 * FROM tblArtikler WHERE MenuUrl = 1 AND Person <> '1'
Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:35 #8
Ingen fejl, men heller ingen data vist.
Der ligger data, hvor "Person" = 1, og data hvor "Person" = NULL
Avatar billede terry Ekspert
17. marts 2002 - 20:35 #9
and if person is numeric
SELECT TOP 2 * FROM tblArtikler WHERE MenuUrl = 1 AND Person <> 1
Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:37 #10
>> terry
The problem is not "MenuUrl", but "Person".
They are both nvarchar.
Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:38 #11
Jeg burde vel få vist det data hvor "Person" = NULL ?
Avatar billede nute Nybegynder
17. marts 2002 - 20:38 #12
hvis du ikke får noen feil, så er det sannsynligvis din SQL det er noe galt med. Det du spør om er "gi meg de 2 seneste kolonner hvor MenuURL = 1 OG Person *ikke* inneholder '1'"

er det dette du vil...??
Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:39 #13
>> nute
Ja, det er det jeg vil :-)
Avatar billede terry Ekspert
17. marts 2002 - 20:39 #14
those conaining NULL are not included in the result!
Avatar billede terry Ekspert
17. marts 2002 - 20:44 #15
SELECT TOP 2 * FROM tblArtikler WHERE MenuUrl = 1 AND (Person <> 1 or Person is null)
Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:44 #16
>> terry
You are right. If I change the value NULL to 0 it works... :-)
Avatar billede terry Ekspert
17. marts 2002 - 20:46 #17
you do NOT need to change the value to 0 but you have to test that it is null.
Avatar billede skovtrold Nybegynder
17. marts 2002 - 20:47 #18
Thank you.
Avatar billede terry Ekspert
17. marts 2002 - 20:54 #19
thank you too :o)
Avatar billede pierrehusted Nybegynder
18. marts 2002 - 08:39 #20
Du kan også skrive

SELECT TOP 2 * FROM tblArtikler WHERE MenuUrl = 1 AND IsNull(Person, 0) <>
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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