webForumDet fria alternativet
Logga in / Bli medlem

SQL order by "del av data"

Databaser & SQL

5 svar · 471 visningar · startad av daja

Medlem sedan feb. 200355 inlägg
Trådstart#1

Hejsan,
Har ett litet problem som jag undrar om det finns någon lösning på.

Jag vill i SQL frågan sortera på år, dock så finns det endast ett fält i databasen att anväda sig av och det är med hela datumet (20060809) och av typen int. Går det på något sätt att sortera på dom 4 första tecknen? Jag vill i andra led sortera på text kund namn men det får just nu ingen effekt eftersom jag sorterar på hela datumet och det är unik för i princip alla träffar.

SELECT a, b, c FROM TABELL WHERE a = '2' ORDER BY "4 första tecknen i b", c

typ :)

Tacksam för hjälp.

mvh
Daniel

Medlem sedan juni 200032 967 inlägg
#2
  1. Det finns ett finfint SQL-forum (jag har rapporterat tråden för flytt dit, så du behöver inte skapa en ny)
  2. Vad använder du för dbms?

(ja, det går att lösa)

Medlem sedan dec. 200012 464 inlägg
#3
SELECT a, b, c 
  FROM TABELL 
  WHERE a = 2
  ORDER BY substring(cast(b as char(8)) from 1 for 4), c

Flyttas från ASP

Medlem sedan feb. 200355 inlägg
#4

Tyckte jag tittade efter ett SQL-forum, men jag måste ha tittat alldeles för snabbt.

Det fungerar tyvärr inte, får felmeddelandet "missing right parenthesis"

Databasen är oracle.

Medlem sedan dec. 200012 464 inlägg
#5
ORDER BY substr(cast(b as char(10)),1,4), c
Medlem sedan feb. 200355 inlägg
#6

Nu fungerade det! Tack för snabba svar.

Tyvärr blev inte resultatet helt tillfredsställande men det beror på uppbyggnaden av sidan.

Tack igen!

253 ms totalt · 4 externa anrop · v20260731065814-full.c32e866c
114 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)