Stel uw vraag
0

Hoe test ik of een veld leeg is in een BASE-query?

gevraagd 2020-12-07 12:03:04 +0100

MEDiX gravatar image

Afhankelijk van het al dan niet bestaan van een tussenvoegsel (zoals in: Wim de Bie) wil ik een tussenvoegsel toevoegen + een spatie. Dit werkt niet: (ISBLANK("Tussenvoegsel"), ,"Tussenvoegsel" || ' ') Hoe moet het wel...?

bewerken retag markeer ongewenst sluiten samenvoegen verwijderen

2 Antwoorden

0

beantwoord 2020-12-09 17:14:33 +0100

MEDiX gravatar image

Uiteindelijk wordt het: SELECT "Rnaam" || CASE WHEN "Tv" IS NULL THEN ' ' ELSE ' ' || TRIM ( "Tv" ) || ' ' END || "Anaam" AS "HeleNaam" FROM "tblPersoon"

Ik denk jouw suggestie letterlijk overgenomen te hebben. De SQL-string wordt wel opgeslagen, mar als ik hem run krijg ik: gegevens kunnen niet worden geladen.

Ik ben er dus nog niet.

bewerken markeer ongewenst verwijderen link meer

Commentaren

de HSQLDB handleiding biedt uitkomst, de werkende expressie is:

select "Rnaam" || ' ' || CASE WHEN "Tv" IS NULL THEN '' ELSE LTRIM( RTRIM("Tv") || ' ') END || "Anaam" FROM "tblPersoon"

Bij de functie trim moet ook nog een trim character worden opgegeven: TRIM(BOTH ' ' FROM "Tv" ), sorry

parsely gravatar imageparsely ( 2020-12-10 14:57:07 +0100 )bewerken

Parseley... bedankt... je hebt me enorm op weg geholpen. Jouw eerste SQL-sequence werkt goed. Als ik LTRIM( RTRIM("Tv") vervang door TRIM(BOTH ' ' FROM "Tv" ). Én ergens een haakje weghaal... werkt het... evengoed...?

MEDiX gravatar imageMEDiX ( 2020-12-19 12:19:08 +0100 )bewerken

Per ongeluk geplaatst... Weet niet hoe ik hem weghaal...

MEDiX gravatar imageMEDiX ( 2020-12-19 12:21:51 +0100 )bewerken

Heb even doorgespeurd op dat TRIM. TRIM is niet nodig als Tv in de tabel een VARCHAR-specificatie heeft: HSQLDB past de ruimte die hij voor het veld gebruikt aan aan de hoeveelheid letters die je gebruikt. Maar als je CHAR als gegevenstype gebruikt, moet je het aantal karakters opgeven dat je in de database voor de kolom Tv wil reserveren. Gegevens die je in Tv NIET vult worden opgevuld met karakters die je opgeeft. Heb je niets opgegeven, dan worden het spaties. Ja... om dan iets leesbaars te krijgen, móét je TRIM gebruiken om dat nietszeggende vulsel te verwijderen.

MEDiX gravatar imageMEDiX ( 2020-12-19 16:54:59 +0100 )bewerken
0

beantwoord 2020-12-08 10:01:19 +0100

parsely gravatar image

testen op NULL is een mogelijkheid: select .... , "voornaam" || CASE WHEN "tussenvoegsel" IS NULL THEN ' ' ELSE ' ' || TRIM( "tussenvoegsel") || ' ' END || "achternaam" , .....

TRIM toegevoegd, omdat een enkele spatie al tot een niet null waarde leidt.

voor alle regels en info over wat kan en mag, zie de engelse handleiding op handleiding

bewerken markeer ongewenst verwijderen link meer
Login/Registreer om te beantwoorden

Hulpmiddelen Vragen

1 volger

Statistieken

Gevraagd: 2020-12-07 12:03:04 +0100

Bekeken: 39 keer

Laatst bijgewertkt: Dec 09 '20