Jeg kommer fra MS-SQL og er vandt til at nedenstående virker:
select kol1, kol2, null as kol3 from tab1
Men nu er jeg desværre end med en DB2 base, hvor jeg gerne ville lave tilsvarende, men det går ikke umiddelbart godt: "[Error Code: -206, SQL State: 42703]"
Hvis jeg i stedet for at bruge "null as kol3" bruger "0 as kol3" så virker skidtet, med giver jo af gode grunde ikke det ønskede resultat, men nævner det blot for at fortælle, at syntaksen er korrekt (med undtagelse af "null as kol3").
Teknologisk gæld hæmmer konkurrenceevne, bæredygtighed, vækst og fleksibilitet. Cost Take-Out kan være en vigtig del af indsatsen for at komme videre.
29. maj 2024
Slettet bruger
14. april 2005 - 14:38#1
Hvorfor null ?
Hvis du laver: SELECT 0 as KOL3 - så henter du en konstant: 0 som er syntaksmæssigt korrekt. Men null er ikke. Det skal være en kolonneangivelse eller teksten "null"
Synes godt om
Slettet bruger
14. april 2005 - 14:41#2
Rødmer lige og skriver, at du ikke må bruge " - dobbelt anførselstegn, men skal bruge enkeltanførselstegn '
Det er jo et lidt gammelt spørgsmål, men alligevel vil jeg da gerne give mit bidrag.
Da jeg selv bruger det nogen gange, ved jeg, at det godt kan lade sig gøre under DB2. I hvert fald hvis du typecaster feltet:
select kol1, kol2, cast(null as dec(6, 2)) as kol3 from tab1 union select kol1, kol2, kol3 from tab2
Du skal altså fastsætte variabeltypen, selv om du bare vil have selecten til at returnere null hver gang. I dit tilfælde, skal du typecaste til den samme variabeltype som kol3 er defineret til i din tab2 (anden del af din UNION). At jeg har skrevet CAST(... AS DEC(6, 2)) skal altså bare opfattes som et eksempel.
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.