webForumDet fria alternativet

IN...?

5 svar · 176 visningar · startad av Engine^

Engine^Medlem sedan dec. 20003 887 inlägg
#1

Jag har en liten IN-fråga (antar jag).

SELECT alla ID i tabellA som inte finns i tabellB;

Mitt problem är att ID:t i tabell B inte är formaterat på samma sätt som i A. Samt att jag inte begriper mig på IN helt... Jag har en funktion som fixar formateringen, men min SQL har gått och lagt sig... jag vill ha något i stil med

SELECT idnummer FROM tblA NOT IN (SELECT formatera(idnummer) FROM tblB);

Är jag på rätt väg? Vart ska jag? Är det en fyrkorsning jag anar i horisonten?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Jo syntaxen är nästan

SELECT idnummer FROM tblA where idnummer NOT IN (SELECT formatera(idnummer) FROM tblB)

men jag tycker att du borde se till att värdena i de båda kolumnerna blir direkt jämförbara. Om du måste använda formateringsfunktionen så kan man inte utnyttja index vilket innebär sämre prestanda.

Engine^Medlem sedan dec. 20003 887 inlägg
#3

Kram!

Problemet med formateringen är att tabell B är en importering, som jag inte orkat förändra... det går ju givetvis rätt fort, men jag är av naturen lat ;)

SQL-uttrycket i sig används inte regelbundet utan endast när jag måste... ca en gång i veckan.

Engine^Medlem sedan dec. 20003 887 inlägg
#4

ujujuj... den frågan tar tid... den har funderat i fem minuter nu och det ploppar upp rad för rad.

Det här med index kanske inte hade varit en så dum ide ändå ;)

HermanMedlem sedan maj 2001431 inlägg
#5

NOT är slött av naturen.

CatZMedlem sedan jan. 20022 440 inlägg
#6

En följdfråga... likaså i If satser har jag fått för mig att använda <> istället för If NOT... är det egentligen någon skillnat förutom att koden blir mer enhetlig ?

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)