09. marts 2005 - 14:01Der er
8 kommentarer og 1 løsning
Trim-funktionen i en Pass Through qry
Jeg prøver at få nedenstående til at fungere i en Pass Trough qry. Det er tilsyneladende Trim der giver problemer. I fald det har relevans kan jeg oplyse at nedenstående er en del af en lang Union qry. Qry'en sendes til en MS SQL 2000 server.
Trim([tblIntInteressent].[fldEfternavn] & isnull([tblForskOphold].[fldComLandID],' (' + [tblComLand].[fldLand] + ')','')) AS Fritekst
Nogen der kan pege på et MSSQL alternativ til Trim?
1) Jeg tror et af problemerne er, at du ikke kan bruge & til at sammensætte strenge. Til det skal du bruge et plus. & er instruktion til bit-wise AND.
Prøv at erstatte & med +.
2) ISNULL ser ud til at have tre parametre. Iflg. dokumentationen kan den kun have to.
3) Iflg. min version af Transact-SQL Reference findes TRIM ikke, hvorimod både LTRIM og RTRIM optræder. Evt. kan du jo erstatte trim med LTRIM(RTRIM(..))
For nu at tage argumenterne til grænsen, så vil jeg foreslå følgende:
RTRIM([tblIntInteressent].[fldEfternavn]) + RTRIM(ISNULL([tblForskOphold].[fldComLandID],' (' + RTRIM([tblComLand].[fldLand]) + ')')) AS Fritekst
Yderligere kommentar: Selv ikke TRIM fjerner mellemrum i en streng (ref. kommentar kl. 14.06). Du er nødt til at fjerne trailing og leading mellemrum inden delstrengene sættes sammen. Jeg har i ovenstående kun brugt RTRIM, da det er mest sandsynligt, at der kun er trailing spaces i felterne.
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.