Hi Robert,
Thanks for answering.
Your suggestion, however, do not work on my Opensuse Leap 42.3 /
LibreOffice 5.3.3.2 configuration. 

I use the Query design feature to enter

"Vorname" || IFNULL( ' & ' || "Partnervorname", ' ' ) || "Nachname"
 or

"Nachname" || IFNULL( ', ' || "Vorname", ' ')

Both above return 0 (yes, zero!) for every record.
Only the "Partnervorname" field has NULL values. I didn't expect
concatenation to be treated like 'multiplication', but I learn
something new every day! Neverthless, something is not right here.

However, 
COALESCE ( CONCAT( "Vorname", SUBSTR( ' & ', 1 ), "Partnervorname",
SPACE( 1 ), "Nachname" ), CONCAT( "Vorname", SPACE( 1 ), "Nachname" ) )

delivers the required result.

Cheers
Harvey




On Fri, 2017-09-15 at 15:02 +0200, Robert Großkopf wrote:
> Hey Harvey,
> 
> > 
> > I wanted to use the CONCAT function in a Base query. However, it
> > seems
> > that if ONE of the elements of the list to be concatenated is NULL
> > then
> > the CONCAT function returns a NULL. Am I right? Is it a bug or a
> > feature?
> 
> feature, because anythin, which is connected with NULL should be
> NULL.
> 
> Do the following
> 
> SELECT "surname"||', '||"forename" AS "name" FROM "table"
> 
> for concatenate. You could concatenate more than two fields in this
> way.
> If one field is NULL all will be NULL.
> 
> Now
> 
> SELECT "surname"||IFNULL(', '||"forename",'') AS "name" FROM "table"
> 
> will set '' for comma and forename if forename is NULL. Will only the
> surname will be shown, if forename is NULL.
> 
> Regards
> 
> Robert
> -- 
> Homepage: http://robert.familiegrosskopf.de
> LibreOffice Community: http://robert.familiegrosskopf.de/map_3
> 
> 

-- 
To unsubscribe e-mail to: [email protected]
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Reply via email to