/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[SQL 2K] NULL problemer
Fra : Stefan Kristensen


Dato : 22-01-04 09:19

Hej NG.

Jeg har en stored procedure, der opretter to en temporære tabeller, #Want og
#Have.
Så skal den finde de rækker i #Want der ikke allerede findes i #Have.
Det klares nemt og elefant med

SELECT * FROM #Want AS w
WHERE NOT EXISTS(
SELECT * FROM #Have AS h
WHERE w.Felt = h.Felt1
AND w.Felt2 = h.Felt2)

Men hvis et af felterne i begge tabeller er NULL, og altså så er ens, kommer
den stadig med i output'et.
Hvordan undgår jeg det?

c",)
Stefan



 
 
Peter Lykkegaard (22-01-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 22-01-04 09:48


"Stefan Kristensen" <stefank@asg.com> wrote in message
news:buo11h$6g5$1@sunsite.dk...

> ... hvis et af felterne i begge tabeller er NULL, og altså så er ens,
> kommer den stadig med i output'et.
> Hvordan undgår jeg det?
>
Du kan evt bruge IFNULL

Where IfNull(MyField, '') = SomeOtherValue

Eller

Where IfNull(MyField, 0) = SomeOtherValue

- Peter



Stefan Kristensen (22-01-2004)
Kommentar
Fra : Stefan Kristensen


Dato : 22-01-04 09:54

> Du kan evt bruge IFNULL
Det heder IsNull i M$ SQL, men det var jo lige det.

Mange tak
Stefan



Peter Lykkegaard (22-01-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 22-01-04 10:18


"Stefan Kristensen" <stefank@asg.com> wrote in message
news:buo347$5qm$1@sunsite.dk...
> > Du kan evt bruge IFNULL
> Det heder IsNull i M$ SQL, men det var jo lige det.
>
Arghh, jeg fik byttet rundt på det

Isnull er den korrekte til det eksempel jeg sendte
En anden mulighed er NullIf hvor udtrykket returnerer Null hvis udsagnet
matcher (eller feltet

Ex

Declare @Foo VarChar(1)
Set @Foo = ''

If NullIf(@Foo, '') Is Null
Print 'Foo = empty string eller null'
Else
Print 'Foo = ' + @Foo

Det samme med IsNull

Ex

Declare @Foo VarChar(1)
Set @Foo = ''

If Len(IsNull(@Foo, '')) = 0
Print 'Foo = empty string eller null'
Else
Print 'Foo = ' + @Foo

Peter



Stefan Kristensen (22-01-2004)
Kommentar
Fra : Stefan Kristensen


Dato : 22-01-04 14:59

> Arghh, jeg fik byttet rundt på det
>
> Isnull er den korrekte til det eksempel jeg sendte
> En anden mulighed er NullIf hvor udtrykket returnerer Null hvis udsagnet
> matcher (eller feltet

Jamen det var da godt, du fik byttet om på det
Jeg fik hvad jeg skulle bruge og har nu også lært noget nyt. Hvad mere kan
man ønske sig?

Foriøvrigt forsøgte jeg at løse mit oprindelige problem med EXCEPT, men det
virker vist ikke i M$ SQL?

mvh
Stefan



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste