Toon posts:

[SQL] BETWEEN

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een klein probleempje...

Dit is mijn table prijs

prijs:
--------
|500 |
|200 |
|400 |
|400 |
|500 |
|20 |
|23,50 |
|6,50 |
|6,25 |
|45 |
--------


Voorbeeld1 :

Sql query :
SELECT DISTINCT * FROM wijnen WHERE 1 AND prijs BETWEEN 1 AND 5

Uitkomst :
200
400
400
400
20
23,50
45

__________________________________________________________________

Voorbeeld2 :

Sql query :
SELECT DISTINCT * FROM wijnen WHERE 1 AND prijs BETWEEN 51 AND 75

Uitkomst :
6,50
6,25

Zoals je ziet zijn de uitkomsten een beetje raar...
kan iemand mij misschien uitleggen hoe dit komt en hoe ik dit anders kan doen??

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

wat is het datatype van prijs? een tekstachtig iets (char, varchar, nvarchar,etc)

[ Voor 46% gewijzigd door gorgi_19 op 16-08-2004 17:03 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 16 augustus 2004 @ 17:02:
wat is het datatype van prijs? een tekstachtig iets (char, varchar, nvarchar,etc)
varchar maar ben okal met FLOAT bezig geweest... zelfde prob...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 16 augustus 2004 @ 17:04:
[...]


varchar maar ben okal met FLOAT bezig geweest... zelfde prob...
Varchar is logisch, aangezien de 6 alfabetisch gezien tussen de 5 en de 7 in ligt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 16 augustus 2004 @ 17:06:
[...]

Varchar is logisch, aangezien de 6 alfabetisch gezien tussen de 5 en de 7 in ligt.
Welke datatype zou ik dan kunnen gebruiken ??

  • stfn345
  • Registratie: Januari 2000
  • Laatst online: 01:27
wat doet die WHERE 1 ?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 16 augustus 2004 @ 17:08:
[...]


Welke datatype zou ik dan kunnen gebruiken ??
Afhankelijk van je database een float, decimal, currency; iig iets numerieks met decimalen, waarbij je in de gaten moet houden of een . of een , het decimaalscheidingsteken is.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 16 augustus 2004 @ 17:09:
[...]

Afhankelijk van je database een float, decimal, currency; iig iets numerieks met decimalen, waarbij je in de gaten moet houden of een . of een , het decimaalscheidingsteken is.
Met float werkt het prima...
Bedankt voor de hulp

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:17
Voor prijzen (en andere numerieke informatie waar je echt precies moet zijn) neem je beter geen float data-type, maar een decimal oid.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 16 augustus 2004 @ 17:25:
Voor prijzen (en andere numerieke informatie waar je echt precies moet zijn) neem je beter geen float data-type, maar een decimal oid.
Gaat een getal bij 2 decimalen dan al de mist in?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-05 18:13
gorgi_19 schreef op 16 augustus 2004 @ 17:44:
Gaat een getal bij 2 decimalen dan al de mist in?
Nou ja, de mist in zal wel meevallen, maar bijvoorbeeld 0,10 is al niet exact te representeren. Als je dan heel veel gaat rekenen kan het zijn dat de benadering als 0,100000000001 (ofzo) uiteindelijk naar voren komt als fout in de berekening. Een echt decimaal type heeft daar geen last van.

Je kunt je natuurlijk afvragen of het in een simpel geval echt zo belangrijk is; als je na een paar berekeningen steeds afrond op 2 decimalen dan blijft de afwijking beperkt. Toch zie ik weinig reden om geen decimaal type te kiezen als die er toch is en als je waarde inherent uit een beperkt aantal decimalen bestaat.

Verwijderd

select * from somedb where 1 is gelijk aan select * from somedb. Oftewel, compleet zinloos, imo. :+

  • Freee!!
  • Registratie: December 2002
  • Laatst online: 12:30

Freee!!

Trotse papa van Toon en Len!

Mijn vraag is meer wat die "1 AND" doet, dat WHERE snap ik nog wel en die prijs ook wel.

Ik dacht dat ik iets van SQL afwist (8 jaar ervaring in programmeren met embedded SQL), maar dit :?

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:17
Ik denk dat de topicstarter zijn query dynamisch opbouwt, en z'n query bv zo opbouwt:

code:
1
string sqlQuery = "SELECT * FROM tabel WHERE 1 = 1";

Als hij z'n query zo definieert, dan kan de TS makkelijker z'n WHERE clausule gaan uitbreiden, als de gebruiker van z'n programma specifieke filters gedefinieerd heeft:
code:
1
2
3
4
5
6
7
8
9
if( txtNaam.Text.Length > 0 )
{
   sqlQuery += " AND naam LIKE @p_Naam";
}

if( txtBlaat.Text.Length > 0 )
{
    sqlQuery += " AND blaat LIKE @p_blaat";
}


}

https://fgheysels.github.io/


  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 12-05 15:26

Eelke Spaak

- Vlad -

Mr. Liu schreef op 16 augustus 2004 @ 18:55:
[...]

Mijn vraag is meer wat die "1 AND" doet, dat WHERE snap ik nog wel en die prijs ook wel.

Ik dacht dat ik iets van SQL afwist (8 jaar ervaring in programmeren met embedded SQL), maar dit :?
AND is gewoon een boolean AND; x AND y is waar dan en slechts dan als x én y waar zijn. x = 1, dus altijd waar, en y is de BETWEEN-vergelijking.

1 AND y is equivalent met y dus.

TheStreme - Share anything with anyone


  • EfBe
  • Registratie: Januari 2000
  • Niet online
1 AND y is equivalent met y dus.
Nee, TRUE AND y is equivalent met y. 1 hoeft niet per definitie 'TRUE' te betekenen.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Sjeik
  • Registratie: Augustus 2001
  • Laatst online: 09-05 13:47
phpMyAdmin doet overal where 1 want dan kan ie daarna voor ieder extra argument and ... gebruiken.
Dus als je me phpMyAdmin je query in elkaar knutselt en deze dus gebruikt voor je script krijg je er dus een where 1 gratis bij.

Was ik maar rijk en niet zo knap...


  • Freee!!
  • Registratie: December 2002
  • Laatst online: 12:30

Freee!!

Trotse papa van Toon en Len!

Sjeik schreef op 17 augustus 2004 @ 12:57:
phpMyAdmin doet overal where 1 want dan kan ie daarna voor ieder extra argument and ... gebruiken.
Dus als je me phpMyAdmin je query in elkaar knutselt en deze dus gebruikt voor je script krijg je er dus een where 1 gratis bij.
Sorry dat ik het zo zeg, maar dat vind ik (met zo'n 10 jaar DB2) minimaal zeer :? :? :? (om het nog maar even netjes uit te drukken :( :'( ).

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT

Pagina: 1