Tjena
Har ett problem med MS-SQL server.
Ja använder ett fält som heter "key_order" i en tabell för att bestämma visningordning på poster.
Kolumnen är av typen int(4) och sen innehåller kolumnen värden såsom 1,2,3..., 5, 6..., 10 osv.
Jag anger i sql frågan:
...ORDER BY key_lang ASC
Problemet är att kolumnen verkar tolkas som en textsträng, för att ordningen blir nu:
1, 10, 11, 2, 3...osv
Har stött på det här tidigare i Access, men då har det berott på slarv, att man angivit "text" som datatyp, men det är alltså inte felet här.
Så, vad ska jag göra för att lösa det här?
Måste jag deklarera dessa värden som tal (int()..?) innan jag sparar dom i databasen, eller finns det nått annat knep?
Måste jag deklarera dessa värden som tal (int()..?) innan jag sparar dom i databasen
Nej, det har ingen som helst betydelse. Din INSERT-fråga i sig är ju ändå en sträng, så konkatenerar du in talvärden blir de ju i alla fall bara del av en sträng.
Problemet är att kolumnen verkar tolkas som en textsträng, för att ordningen blir nu:
Kod:
1, 10, 11, 2, 3...osv
Har stött på det här tidigare i Access, men då har det berott på slarv, att man angivit "text" som datatyp, men det är alltså inte felet här.
Det låter suspekt. :)
Om det är ett vanligt integer-fält i SQL Server så ska det inte kunna bli så.
eller finns det nått annat knep?
Skapa ett nytt integer-fält i tabellen, fyll det med samma data som ditt sorteringsfält och testa.
Annars är det bara att göra en CAST till integer i din ORDER BY...