/ Forside/ Teknologi / Udvikling / SQL / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Order By - case sensitive - Interbase
Fra : Ladmorillo
Vist : 541 gange
434 point
Dato : 07-10-02 23:39

Hej

Jeg har en Interbase stored procedure som ser sådan her ud:

CREATE PROCEDURE Sorter_person_enavn
RETURNS
(
   o_pnr CHAR(5),
   o_navn VARCHAR(42)
)
AS
BEGIN
   FOR
      SELECT pnr, enavn || ', ' || fnavn
      FROM Person
      ORDER BY enavn
INTO :o_pnr, :o_navn
   DO
      SUSPEND;
END

Og den virker da også helt fint, men hvis nu at efternavnet er stavet med lille begyndelsesbogstav, bliver den alfabetiske sortering ikke helt så alfabetisk - først kommer alle de store bogstaver og så de små.

Jeg vil gerne have min Order By til at ignorere case, men hvordan??

Order By UPPER(enavn) - dette vil den ikke acceptere.

Nogle forslag?? En simpel SQL løsning eller en omvej evt. v.h.a. Interbases ekstra faciliteter?? Jeg ved ik.

MVH
Ladmorillo

 
 
Kommentar
Fra : strarup


Dato : 08-10-02 12:01

Hej Ladmorillo,

hvilket program bruger du? version af interbase f.eks. evt. lidt flere oplysninger...

ska' det ingå i et programmerings sprog? og hvis ja hvilket?

er det mySql, eller andet SQL?

jeg har fundet lidt med ved ikke om det ka' bruges i dit tilfælde...

på denne side... "Case (insensitive) record searching methods" fra Borland... -->
http://bdn.borland.com/article/0,1410,25171,00.html
bliver der nævnt fire forskellige forslag...

på denne side... "org.apache.turbine.util.db.adapter - Class DBInterbase"... -->
http://www.bluesunrise.com/jetspeed-docs/turbine-2001-1124-javadocs/org/apache/turbine/util/db/adapter/DBInterbase.html
bliver der bl.a. nævnt
String ignoreCase(String in) og
String ignoreCaseInOrderBy(String in)
men det hjælper ikke meget hvis det f.eks. ikke er det miljø du arbejder i...

men hvis du kommer med lidt flere oplysninger vil det gøre det noget nemmere at hjælpe...

mvh.

Strarup

Accepteret svar
Fra : pmbruun

Modtaget 434 point
Dato : 08-10-02 13:28

Brug alias "uenavn" for en kolonne i din select, f.eks.:

SELECT pnr, enavn || ', ' || fnavn, UPPER(enavn) "upperenavn"
FROM Person
ORDER BY upperenavn
INTO :o_pnr, :o_navn

Kommentar
Fra : strarup


Dato : 10-10-02 10:43

Hej Ladmorillo,

hvordan går det, er du kommet videre?

har du fået løst dit problem eller driller det stadigvæk?

mvh.

Strarup

Kommentar
Fra : strarup


Dato : 23-10-02 01:24

Hej Ladmorillo,

har du egentlig fået løst dit problem eller driller det stadigvæk?

mvh.

Strarup

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407859
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste