Avatar billede iblarsen Praktikant
02. juli 2006 - 10:51 Der er 3 kommentarer og
1 løsning

Hvordan vender man output på en SQL2005 server

Hej

Er der nogen som kan hjælpe mig med følgende:

Jeg har f.eks. en tabel på en SQL2005 server med følgende

Nr, Felttype, Data
1, Fornavn, Anders
2, Fornavn, Bent
3, Fornavn, Claus
4, Fornavn, Dennis
2, Efternavn, Børgesen
3, Efternavn, Clausen

Denne vil jeg gerne have lavet om til:

Nr, Fornavn, Efternavn
1, Anders
2, Bent, Børgesen
3, Claus, Clausen
4, Dennis

Jeg kan sagtens lave noget C#.Net kode som gennemløber dataen og oprette en ny tabel med det ønskede. Men det jeg efterlyser er - om jeg kan få SQL2005 serveren til at klare det for mig. Der findes noget med pivot tabeller i SQL2005, men jeg synes ikke det virker efter hensigten (i dette tilfælde).
Er der nogen som kan hjælpe?

Mvh. Ib
Avatar billede arne_v Ekspert
03. juli 2006 - 00:38 #1
kan du ikke bruge:

SELECT t1.nr,t1.fornavn,t2.efternavn
FROM dintabel t1,dintabel t2
WHERE t1.nr=t2.nr AND t1.felttype='Fornavn' AND t2.felttype='Efternavn'

?
Avatar billede iblarsen Praktikant
03. juli 2006 - 07:12 #2
Det har jeg prøvet. Men så får jeg ikke oplysninger ud om nr. 1 og 4. Men kun hvor både fornavn og efternavn findes
Avatar billede iblarsen Praktikant
03. juli 2006 - 07:19 #3
Løsning fundet:

SELECT COALESCE(fn.Nr, ln.Nr) AS [Nr], IsNull(fn.Data, '') AS [Fornavn], IsNull(ln.Data, '') AS [Efternavn]
  FROM test fn FULL OUTER JOIN
      test ln ON fn.Nr = ln.Nr AND ln.felttype = 'Efternavn'
WHERE fn.felttype = 'Fornavn'
Avatar billede ldanielsen Nybegynder
04. juli 2006 - 09:31 #4
Smukt.

Det var så første gang jeg så COALESCE i brug.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester