[ACCESS/SQL] Textfield sorting

Pagina: 1
Acties:

  • Ybox
  • Registratie: Juni 2000
  • Laatst online: 08-12-2025
In access heb ik een text column waarin zowel Letters als cijfers staan :
[A,1,4,55,B,D,D2,44,56,9]

Nu wil ik hiervan de hoogste in de reeks pakken, waarbij getallen voorrang hebben op text.
Dus A<9 & 9<99

Helaas wordt de text column zo gesorteerd dat er eerst naar alle eerste characters wordt gekeken voordat men naar de volgende kijkt
[A,B,D,D2,1,4,44,55,56,9] (hierbij wordt 9 als max gezien)

Hoe kan ik deze toch zo sorteren dat 56 als hoogste getal wordt gekozen, nu heb ik het al geprobeerd met CLng maar deze kan je alleen gebruiken om de getallen omte zetten gemixed wil dit niet.

  • whoami
  • Registratie: December 2000
  • Laatst online: 07-04 22:26
waarom sla je die data op die manier op ?

https://fgheysels.github.io/


  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

nullen er voor plakken?
de cijfers die daar staan zijn volgens mij CHARs, je moet ze omzetten naar echte getallen... kun je in query doen door "+0" achter colom met waardes te zetten.. alsj e colom met getallen XX heet zou ik er zoets van maken:

=if(iserror(XX=0)=TRUE;XX;XX+0)

ga dan sorten en kijke dan eens..

  • Ybox
  • Registratie: Juni 2000
  • Laatst online: 08-12-2025
whoami schreef op vrijdag 03 maart 2006 @ 15:27:
waarom sla je die data op die manier op ?
Hoe zou ik dan die data op moeten slaan ? let wel tis gemixde charaters

  • Ybox
  • Registratie: Juni 2000
  • Laatst online: 08-12-2025
Zerveza schreef op vrijdag 03 maart 2006 @ 15:30:
nullen er voor plakken?
de cijfers die daar staan zijn volgens mij CHARs, je moet ze omzetten naar echte getallen... kun je in query doen door "+0" achter colom met waardes te zetten.. alsj e colom met getallen XX heet zou ik er zoets van maken:

=if(iserror(XX=0)=TRUE;XX;XX+0)

ga dan sorten en kijke dan eens..
het omzetten van (text) nummers naar (Long) nummers is geen probleem, het probleem is het omzetten van die letters. De letters staan in de zelfde column en moeten ook mee doen in de sort.

  • mylar
  • Registratie: Mei 2002
  • Laatst online: 30-03 10:04
Kan je posten hoe de sort er volgens jou moet uitzien?

Want je voorbeeld van hierboven klopt niet, Access sorteert als volgt:

[1,4,44,55,56,9,A,B,D,D2]

  • Ybox
  • Registratie: Juni 2000
  • Laatst online: 08-12-2025
mylar schreef op vrijdag 03 maart 2006 @ 16:15:
Kan je posten hoe de sort er volgens jou moet uitzien?

Want je voorbeeld van hierboven klopt niet, Access sorteert als volgt:

[1,4,44,55,56,9,A,B,D,D2]
jah idd |:( haal ff wat door elkaar...

wat ik wil hebben is

[1,4,9,44,55,56,A,B,D,D2]

  • mylar
  • Registratie: Mei 2002
  • Laatst online: 30-03 10:04
voila:

SQL:
1
2
3
SELECT Table1.col
FROM Table1
ORDER BY IIf(Len([col])=1,' ' & IIf(IsNumeric([col]),' ' & [col],[col]),IIf(IsNumeric([col]),' ' & [col],[col]));


Col is je veld/kolom
table1 is je tabel

Om het probleem op te lossen van bv 9 dat na 55 komt voeg ik een spatie voor de string toe. Een spatie komt vooraan in de ascii tabel en komt dus eerst.
En om de nummertjes voorang te geven op de letters doe ik dat nog een keer bij numerieke waarden.

[ Voor 88% gewijzigd door mylar op 03-03-2006 16:39 ]


  • BovenHond
  • Registratie: Februari 2002
  • Laatst online: 18:23
Als je nu in een andere kolom de uitkomst van onderstaande functie neerzet en daarop sorteert.

IIf(Isnumeric(Left([Celwaarde];1));Right("000"&[Celwaarde];3);[Celwaarde])
Pagina: 1