[SQL] Order bij nummer, naam

Pagina: 1
Acties:

  • Webby_143
  • Registratie: Januari 2002
  • Laatst online: 03-11-2023
ik heb als eindresultaat uit een query 6 resultaten.
deze bevat 1, 2, 3, 4, null, null
en 6 textuele items naast die getallen.

Als ik order by nummer, naam doe, dan krijg ik eerst de 2 resultaten met als nummer 'null' gesorteerd op alfabet en daarna op nummer gesorteerd 1, 2, 3, 4.
Ik wil de 'null' items na de getallen op volgorde hebben. iemand enig idee wat te doen?

:: Game Over ::


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:01

TeeDee

CQB 241

ORDER BY ASC of DESC?

@P_de_B: dat wil hij toch :? Zijn sorteer volgorde omgedraaid hebben?

Edit: Ah, nu snap ik het: je wilt 1,2,3,4,null,null eruit krijgen!
Begrijpend lezen enzo... vrijdag :)

edit:
niet zo basic als ik dacht dus...

[ Voor 157% gewijzigd door TeeDee op 19-03-2004 13:05 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
nope dan zou 1,2,3,4 ook 4,3,2,1 worden

@TS: welk RDBMS gebruik je?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • foske
  • Registratie: Juli 2001
  • Laatst online: 26-05 10:03
Als je RDBMS het ondersteunt, zou je iets moeten proberen als replace(kolomnaam, null, 999999)

[ Voor 7% gewijzigd door foske op 19-03-2004 13:07 . Reden: replace verbeterd ]


  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 19:37
Als je Oracle gebruikt : ORDER BY kolom NULLS LAST

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
Kijk eens of je DBMS een functie ala ISNULL heeft:

code:
1
2
3
SELECT ISNULL (nummer, 9999), naam
FROM
ORDER BY 1, 2

https://fgheysels.github.io/


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
De oplossing is al eens door drm gegeven.
ORDER BY nummer IS NULL, nummer, tekst dus.

| Toen / Nu


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

SuperRembo schreef op 19 maart 2004 @ 13:08:
De oplossing is al eens door drm gegeven.
ORDER BY nummer IS NULL, nummer, tekst dus.
Die's best slim, kende ik ook niet :)

Professionele website nodig?


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:01

TeeDee

CQB 241

curry684 schreef op 19 maart 2004 @ 13:11:
[...]
Die's best slim, kende ik ook niet :)
Bij mij gaat ie inderdaad ook in de code library :)
afgezien van het feit dat ik liever geen null values uit mijn db krijg

[ Voor 21% gewijzigd door TeeDee op 19-03-2004 13:13 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 19:37
SuperRembo schreef op 19 maart 2004 @ 13:08:
De oplossing is al eens door drm gegeven.
ORDER BY nummer IS NULL, nummer, tekst dus.
Net zoals zo'n beetje alle oplossingen gegeven hier werkt deze oplossing ook niet op alle RDBMS-en.
@TS: maar als er nu geen bruikbare oplossing tussen zit weet ik het ook niet meer ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
curry684 schreef op 19 maart 2004 @ 13:11:
[...]

Die's best slim, kende ik ook niet :)
Idd, en ie is ook best netjes, en waarschijnlijk ook sneller dan de versie met ISNULL() in de select list.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
TeeDee schreef op 19 maart 2004 @ 13:11:
[...]
afgezien van het feit dat ik liever geen null values uit mijn db krijg
Dat is toch onzin? Als er een veld in je DB is, waar NULLS op toegestaan zijn, dan kan je toch een record terugkrijgen met een NULL waarde.
Stel een tabel 'klanten', waarbij het veld telefoonnr nullable is. Wat ga jij dan wel returnen ipv die NULL voor een klant zonder telnr?

https://fgheysels.github.io/


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:01

TeeDee

CQB 241

whoami schreef op 19 maart 2004 @ 13:15:
[...]
Dat is toch onzin? Als er een veld in je DB is, waar NULLS op toegestaan zijn, dan kan je toch een record terugkrijgen met een NULL waarde.
Stel een tabel 'klanten', waarbij het veld telefoonnr nullable is. Wat ga jij dan wel returnen ipv die NULL voor een klant zonder telnr?
Misschien moet ik het anders zeggen: ik heb liever geen null values uit de systemen en apps die wij gebruiken/maken. Ik zeg niet dat je noooooit null values kan en mag hebben. Daarom stond er ook: afgezien... ik... mijn....

Heart..pumps blood.Has nothing to do with emotion! Bored


  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 19:37
whoami schreef op 19 maart 2004 @ 13:15:
[...]


Dat is toch onzin? Als er een veld in je DB is, waar NULLS op toegestaan zijn, dan kan je toch een record terugkrijgen met een NULL waarde.
Stel een tabel 'klanten', waarbij het veld telefoonnr nullable is. Wat ga jij dan wel returnen ipv die NULL voor een klant zonder telnr?
Ik ken (3rd party) applicaties die dan " " terug gaan geven. Kom op zeg, leeg is leeg , dus NULL.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
TeeDee schreef op 19 maart 2004 @ 13:17:
[...]

Misschien moet ik het anders zeggen: ik heb liever geen null values uit de systemen en apps die wij gebruiken/maken. Ik zeg niet dat je noooooit null values kan en mag hebben. Daarom stond er ook: afgezien... ik... mijn....
Tja, ik vind dat maar onzin.
NULL is ongedefinieerd en dus leeg.
" " is niet ongedefinieerd of leeg.

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Beetje offtopic misschien maar kunnen de modjes er op toezien dat het RDBMS genoemd wordt en niet alleen [SQL]?
Misschien in de policy opnemen? Dat voorkomt dat je steeds moet vragen naar het RDBMS of antwoorden geeft die niet op het betreffende RDBMS van toepassing zijn.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Webby_143
  • Registratie: Januari 2002
  • Laatst online: 03-11-2023
Ik ben even wat suggesties uitvoeren, het is MSSQL btw, dat ORDER BY nummer IS NULL geeft een error, dus dat vindt ie al niet lief :{

:: Game Over ::


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:01

TeeDee

CQB 241

whoami schreef op 19 maart 2004 @ 13:19:
[...]
Tja, ik vind dat maar onzin.
NULL is ongedefinieerd en dus leeg.
" " is niet ongedefinieerd of leeg.
Hmm, dit wordt misschien nog een leuke discussie.
NULL is nul is leeg is niks.
" " is niet leeg! Vind ik, dat is namelijk een "spatie" in mijn optiek! Stagiares bij ons worden praktisch vergast als ze daar op checken of dat in een db zetten.

Niet alle systemen/apps bij ons retourneren nooit een null. Er zijn ook systemen waarbij je er niet omheen kan.

Er zijn er dus wel een paar bij die zo uitgekristalliseerd zijn dat er geen null uit kan komen. Is dat wel zo, dan is er iets mis. Dus het heeft meer te maken met de usage van het systeem dan de opzet :) Zo, hoop dat ik nu wel een beetje duidelijker ben geworden :)

Heart..pumps blood.Has nothing to do with emotion! Bored


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
Webby_ schreef op 19 maart 2004 @ 13:20:
Ik ben even wat suggesties uitvoeren, het is MSSQL btw, dat ORDER BY nummer IS NULL geeft een error, dus dat vindt ie al niet lief :{
MSSQL kent zeker een functie ISNULL.
code:
1
2
3
SELECT nummer, naam
FROM tabel
ORDER BY ISNULL(nummer, 99999), naam

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
code:
1
ORDER BY CASE [Veld] WHEN NULL then 'zzzzzz' ELSE [Veld] END

[ Voor 14% gewijzigd door P_de_B op 19-03-2004 13:28 . Reden: ik dacht NULL bovenaan :) nu dus onderaan ]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
TeeDee schreef op 19 maart 2004 @ 13:22:
[...]


Hmm, dit wordt misschien nog een leuke discussie.
NULL is nul is leeg is niks.
" " is niet leeg!
Wel, dat zeg ik toch?
NULL != " ".
En dat zei ik op reactie dat jij zegt dat je geen nulls uit je DB wilt halen, waar ik dan maar gemakshalve uit concludeer dat jij die NULL vervangt door lege strings oid.

https://fgheysels.github.io/


  • Webby_143
  • Registratie: Januari 2002
  • Laatst online: 03-11-2023
whoami schreef op 19 maart 2004 @ 13:24:
[...]


MSSQL kent zeker een functie ISNULL.
code:
1
2
3
SELECT nummer, naam
FROM tabel
ORDER BY ISNULL(nummer, 99999), naam
Yupz, hartelijk bedankt, ik heb alleen wel de 99999 even vervangen voor 32767 ;)

Hoe kan ik meer info winnen over DBMS btw, want dat zegt mij helemaal niks?
Ik zou graag zelf meer leren zonder vragen die blijkbaar een snel antwoord hebben ook echt te moeten stellen..

:: Game Over ::


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:01

TeeDee

CQB 241

whoami schreef op 19 maart 2004 @ 13:26:
[...]

Wel, dat zeg ik toch?
NULL != " ".
Dat zie ik nu ook jah. Gemakshalve over het " " is niet... heen gelezen.
En dat zei ik op reactie dat jij zegt dat je geen nulls uit je DB wilt halen, waar ik dan maar gemakshalve uit concludeer dat jij die NULL vervangt door lege strings oid.
NULL vervangen wij dus niet. Want wij krijgen dus geen null uit de db, zoja, dan is er iets mis :)

aannames :+

[ Voor 3% gewijzigd door TeeDee op 19-03-2004 13:28 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
whoami schreef op 19 maart 2004 @ 13:14:
[...]


Idd, en ie is ook best netjes, en waarschijnlijk ook sneller dan de versie met ISNULL() in de select list.
Hij zal het alleen bij SQL Server niet doen.....


edit: jammer :) hij doet het wel bij MySQL

[ Voor 9% gewijzigd door P_de_B op 19-03-2004 13:37 ]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
P_de_B schreef op 19 maart 2004 @ 13:30:
[...]


Hij zal het alleen bij SQL Server niet doen.....
Ik heb het op Oracle ook ff getest, en daar doet ie het ook niet. :o

https://fgheysels.github.io/


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

P_de_B schreef op 19 maart 2004 @ 13:19:
Beetje offtopic misschien maar kunnen de modjes er op toezien dat het RDBMS genoemd wordt en niet alleen [SQL]?
Misschien in de policy opnemen? Dat voorkomt dat je steeds moet vragen naar het RDBMS of antwoorden geeft die niet op het betreffende RDBMS van toepassing zijn.
Ik zie vaak topics langskomen met [Oracle] of [T-SQL] oid, en dat gaat dan meestal over stored procedures en complexe serverside programming. In dit geval betreft het in eerste instantie gewoon een algemene SQL vraag, en wil je dus de mening van alle SQL kenners. Pas zodra er een oplossing kwam was DBMS-specifieke kennis nodig :)

Ik lees zelf geen [Oracle] topics, maar ken wel T-SQL, to illustrate the problem ;) Wmb is [SQL] dus ruim goed genoeg voor dit soort topics.

Professionele website nodig?


  • Webby_143
  • Registratie: Januari 2002
  • Laatst online: 03-11-2023
Ik ben er dus uit dat RDBMS je database is, maar dat scripting, in mijn geval voor MSSQL, waar kan ik daar meer over leren?

:: Game Over ::


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Webby_ schreef op 19 maart 2004 @ 13:28:
[...]
Hoe kan ik meer info winnen over DBMS btw, want dat zegt mij helemaal niks?
Ik zou graag zelf meer leren zonder vragen die blijkbaar een snel antwoord hebben ook echt te moeten stellen..
DBMS = DataBase Management System
RDBMS = Relational DBMS

Gewoon het systeem waarmee je werkt dus: SQL Server, MySQL, PostgreSQL, Oracle etc :) Kan zoals je ziet behulpzaam zijn bij de subtiele verschillen :Y)

Professionele website nodig?


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

whoami schreef op 19 maart 2004 @ 13:32:
Ik heb het op Oracle ook ff getest, en daar doet ie het ook niet. :o
boolean is geen ondersteund datatype in Oracle SQL.

Who is John Galt?


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
Webby_ schreef op 19 maart 2004 @ 13:33:
Ik ben er dus uit dat RDBMS je database is, maar dat scripting, in mijn geval voor MSSQL, waar kan ik daar meer over leren?
In de books Online van SQL Server vind je wel wat informatie terug. Anders kan je natuurlijk ook een boek kopen die T-SQL van SQL Server behandeld, en wat uitleg geeft over het maken van stored procedures, triggers, views, etc...... T-SQL programming dus.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
justmental schreef op 19 maart 2004 @ 13:38:
[...]

boolean is geen ondersteund datatype in Oracle SQL.
Mjah, in SQL Server ook niet (daar gaat het met BIT, maar dat is dus wel 0 of 1).
Daarmee ging ik er eigenlijk wel een beetje van uit dat die expressie op SQL Server 0 of 1 ging returnen.

https://fgheysels.github.io/


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Webby_ schreef op 19 maart 2004 @ 13:33:
Ik ben er dus uit dat RDBMS je database is, maar dat scripting, in mijn geval voor MSSQL, waar kan ik daar meer over leren?
Ik heb zelf "The SQL Server 2000 Bible" van Paul Nielsen, dat is echt een fantastisch boek dat alles uitlegt over hoe SQL Server in elkaar zit, beheerd moet worden, hoe je kunt optimaliseren, alles over SQL en T-SQL, clustering, OLAP etc. etc. etc :)

[/shameless plug]

Professionele website nodig?


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
curry684 schreef op 19 maart 2004 @ 13:32:
[...]

Ik zie vaak topics langskomen met [Oracle] of [T-SQL] oid, en dat gaat dan meestal over stored procedures en complexe serverside programming. In dit geval betreft het in eerste instantie gewoon een algemene SQL vraag, en wil je dus de mening van alle SQL kenners. Pas zodra er een oplossing kwam was DBMS-specifieke kennis nodig :)

Ik lees zelf geen [Oracle] topics, maar ken wel T-SQL, to illustrate the problem ;) Wmb is [SQL] dus ruim goed genoeg voor dit soort topics.
Hmm, ik begrijp wel wat je bedoeld maar zoals je ziet zijn er voor dit probleem al een aantal, dialect specifieke oplossingen mogelijk. Als je vragen hebt over layout en normaliseren etc. lijkt me het niet nodig, zoek je een bepaalde code lijkt het me een goed idee het RDBMS te vermelden.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Webby_143
  • Registratie: Januari 2002
  • Laatst online: 03-11-2023
curry684 schreef op 19 maart 2004 @ 13:41:
[...]

Ik heb zelf "The SQL Server 2000 Bible" van Paul Nielsen, dat is echt een fantastisch boek dat alles uitlegt over hoe SQL Server in elkaar zit, beheerd moet worden, hoe je kunt optimaliseren, alles over SQL en T-SQL, clustering, OLAP etc. etc. etc :)

[/shameless plug]
Ah, de bible serie, dat wordt dus mijn volgende aanwinst uit die serie, tnx alot iedereen, ik kan weer aan de slag :)

:: Game Over ::


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Ok, deze moet wel werken met SqlServer:
ORDER BY CASE WHEN nummer IS NULL THEN 1 ELSE 0 END, nummer, tekst

| Toen / Nu


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
SuperRembo schreef op 19 maart 2004 @ 13:58:
Ok, deze moet wel werken met SqlServer:
ORDER BY CASE WHEN nummer IS NULL THEN 1 ELSE 0 END, nummer, tekst
[rml]P_de_B in "[ SQL] Order bij nummer, naam"[/rml] :)

Oops! Google Chrome could not find www.rijks%20museum.nl


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Het voordeel van
code:
1
ODER BY CASE veld WHEN NULL THEN 1 ELSE 0 END, veld

ten opzichte van
code:
1
ODER BY CASE veld WHEN NULL THEN 'zzzzzz' ELSE veld END

is dat het onafhangelijk is van het datatype en de maximaal mogelijke waarde van dat datatype.

| Toen / Nu

Pagina: 1