13. oktober 2004 - 12:54Der er
9 kommentarer og 2 løsninger
Convert giver NULL
Jeg sidder med to varchar-felter, som jeg i min SQL SELECT sætning vil sætte sammen. Jeg gør som følger:
SELECT (FirstName + ' ' + LastName) AS FullName FROM People
Problemet er bare, at hvis LastName er NULL, bliver FullName også NULL, hvor jeg egentlig gerne vill have, at jeg bare fik FirstName ud istedet, og ikke NULL. Jeg forsøgte at løse det på denne måde:
SELECT (FirstName + ' ' + CONVERT(varchar(255),LastName)) AS FullName FROM People
... i håb om at den konverterede en evt. NULL-værdi i LastName til en tom streng (""). Men det gjorde den tilsyneladende ikke, og stadig blev FullName NULL.
Er der nogle der har et forslag til, hvordan jeg løser dette?
Hvis jeg sidder med felt, som både kan indeholde tekst og tal (dvs. et varchar-felt), så vil jeg gerne konvertere feltets indhold til int, hvis muligt. Hvis ikke muligt, skal tekstværdien bare returneres. Jeg forsøgte mig med følgende:
CASE WHEN (ISNUMERIC(TalOgTekstFelt) = 1) THEN CONVERT(int,TalOgTekstFelt) ELSE (TalOgTekstFelt) END AS TrackNumber
Men den brokker sig, hvis varchar feltet indeholder noget tekst, og siger fx.:
"Syntax error converting the varchar value 'A' to a column of data type int."
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.