Vinnaren i pepparkakshustävlingen!
2009-04-09, 13:23
  #1
Medlem
jomenvisst84s avatar
Kanske ska börja med att jag är jäkligt kass på databaser, kan knappt grundläggande SQL-uttryck.

I alla fall sitter jag på jobbet och försöker göra en sökning på samtliga artikelnummer mellan 87451 och 99999, där WHERE-uttrycket är
Kod:
PART_CODE between  '87451'  and  '99999' 

Även med min ringa kunskaper tycker jag detta ser helt rätt ut, men ändå får jag med artikelnummer som 90431010, 90431037, 90431038 osv. i sökningen. Min fråga är, är det jag som söker på fel sätt eller är det databasen som inte är upplagd på rätt sätt.

Kan tillägga att sökningen
Kod:
PART_CODE between  '27000'  and  '28000'
fungerar precis som det är tänk, dvs jag får endast upp en lista på nummer mellan 27000-28000.

Verkar som det spökar när man försöker göra en sökning på ett intervall mellan artikel-nummer som startar på 5 siffror och slutar på 6 siffror. (detta gäller också om sökningen startar på ett 7 siffror långt nummer och slutar på ett 8 siffror lång nummer osv)

Nån som har någon bra idé?
__________________
Senast redigerad av jomenvisst84 2009-04-09 kl. 13:30.
Citera
2009-04-09, 13:33
  #2
Medlem
Mys-Hitlers avatar
Vad händer om du tar bort fnuttarna runt siffrorna?
Citera
2009-04-09, 13:38
  #3
Medlem
jomenvisst84s avatar
Då funkade det ju!!

Tack ska du ha!!

En liten förklaring på skillnaden fnuttarna gör vore också uppskattat
Citera
2009-04-09, 13:49
  #4
Medlem
Mys-Hitlers avatar
Fnuttarna gör siffrorna till strängar. Sorteringen/jämförelsen sker därför alfabetiskt istället för numeriskt, t.ex. anses '90431010' ligga mellan '87451' och '99999'.
Citera
2009-04-09, 14:09
  #5
Medlem
jomenvisst84s avatar
Ah, ganska logiskt...

Tack än en gång!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback