til forskel fra ltrim der kun fjerne de første blanktegn, fjerner trim funktionen på foran og bagved stillede blanktegn - som: ltrim(rtrim(firstname1))||' '||ltrim(rtrim(firstname2))
ja, fordi ltrim fjerner de sidste blanktegn - men sidste tegn er ;
prøv med: select ltrim(ltrim(substr(ltrim(firstname1),1,length(ltrim(firstname1)-1))))||' '|| ltrim(substr(ltrim(firstname2),1,length(ltrim(firstname2),1,length(ltrim(firstname2)-1)))) as fornavn from person;
lap: har du fået den til at køre??? Jeg får en fejl, når jeg kører den: ERROR at line 2: ORA-00909: invalid number of arguments (det er length, som den peger på)
denne virker - den er gal med parantesernes placering:
select trim(substr(trim(firstname1),1,length(trim(firstname1))-1))||' '|| trim(substr(firstname2),1,length(trim(firstname2))-1))||'x' as person from person
Jeg har brug for den, da jeg skal lave en semikolonseperaret fil.
Er der en anden måde?
Synes godt om
Slettet bruger
05. marts 2007 - 20:04#22
lbaad: laver du det her i SQL-Plus eller i iSQL-Plus?
For at fjerne bagvedstillede spaces skal du lave en SET TRIMSPOOL ON.
Hvis du laver en SET COLSEP ';' er det vel fordi du vil have ';'?
Jeg ville godt se hele dit script, hvis jeg skulle kunne hjælpe. Jeg ville nok stille mig tilfreds med at der er et par spaces med, eller konkatenere alle felterne sammen i een streng med ';'-er imellem.
SELECT PQZ_PHONE telefonnummer, trim(SUBSTR(trim(firstname1),1,(LENGTH(trim(firstname1)))-1))||' '|| trim(SUBSTR(trim(firstname2),1,(LENGTH(trim(firstname2)))-1)) person, LTRIM((LASTNAME)) Efternavn, ADDRESS Gadenavn, Getfloor(HOUSE_NUMBER) "Husnr", -- funktion Getfloordirection(house_number) "Opgang/Husbogstav", -- funktion Getfloor(FLOOR) "Etage",-- funktion Getfloordirection(FLOOR) "Enhed på etage", -- funktion ZIPCODE Postnr, CITY Postdistrikt FROM ODS_PERSON p JOIN ( SELECT personId FROM ACCOUNTS WHERE processorId = 1 AND accountType = 1 AND TO_DATE('26-02-2007', 'DD-MM-YYYY') BETWEEN startdate AND enddate ) A1 ON a1.personId = p.ID JOIN ( SELECT DISTINCT telefon FROM PQZ_SIM ) s ON s.telefon = p.pqz_phone;
Tror du ikke vi har en misforståelse: Jeg antog at FIRSTNAME1 var på formen 'NAVN ;' (en VARCHAR). Men i virkeligheden er den af formen 'NAVN'. De efterfølgende spaces og ';' kom fra at du bruger 'SET COLSEP ';''.
Det kunne den så ikke finde ud af, så i har fået halvdelen hver.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.