03. maj 2006 - 12:23Der er
5 kommentarer og 1 løsning
ISNULL og NULLIF fnider
HVorfor giver
Select ISNULL(NULLIF(RIGHT(RTRIM(Addr_city,1),','),'QQQQQ' as varcity
varcity = 'Q'
ændrer jeg på 1 tallet i RIGHT functionen til 2, så får jeg 'QQ'.
Jeg ville jo så gerne have 5 Q'er eller hvis jeg indsatte et felt så hele feltet og ikke kun første ciffer. ISNULL skulle jo tage hele Replacement værdien, eller hva?
Select ISNULL(NULLIF(RIGHT(RTRIM(addr_city),1),','),addr_city) as varcity From account
QQQQ er her erstattet af feltet addr_city
der manglede vidst lige et par ")". Sidder på en anden PC end hvor jeg tester...
Hvad jeg vil: Hvis der i addr_city står et komma til sidst, så skal kommaet fjernes. Om addr_city gemmes i en ny "varcity" eller blot i sig selv er ligegyldig når blot jeg får kommaet fjernet i SQL kaldet. Jeg ved godt at ovenstående sætning ikke vil komme til at gøre hvad jeg ønsker men det skulle være et skridt på vejen. Jeg blev bare stoppet af den omptalte "fejl". Kan det gøre smart er jeg med på den, men jeg forstår stadig ikke hvorfor længden "arves" fra RTRIM functionen?
SELECT CASE WHEN addr_city IS NULL OR LEN(addr_city) = 0 THEN addr_city WHEN SUBSTRING(addr_city, LEN(addr_city), 1) = ',' THEN LEFT(addr_city, LEN(addr_city) - 1) ELSE addr_city END AS varcity FROM account
En rød ferrari og en pose jord er på vej til >kjulius<. Havde fedtet noget med case uden at få det til at virke, så det var godt at få et eksempel, som igen kan bruges senere. takker. smid et svar.
Jeg takker for den røde Ferrari. Den kan jeg bruge til at imponere naboerne med. Derimod synes jeg du skulle donere posen med jord til din lokale gartner. Så bliver han sikkert også glad :-)
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.