-- Business Rule, first name, middle name and last name can all be null
-- ddl
create table #cat (catID char(8) primary key, first_name varchar(15)
null, middle_name varchar(2) null, last_name varchar(15) null)
-- dml, populate sample data
insert into #cat
values ('Black123','gh ost','','bigger ')
insert into #cat
values ('Arab0123','Ha ma','','Abbas')
insert into #cat
values ('Mixed001','', null,null)
insert into #cat
values ('Mixed002',nul l,null,null)
insert into #cat
values ('Mixed003',nul l,'','Smith')
insert into #cat
values ('White123','', '','Talley')
insert into #cat
values ('Yello123','Ni ck','H','Pisa')
-- dml, name concatenation, get all or any
select (first_name + ' ' + middle_name + ' ' + last_name) as name
from #cat
-- the above does not meet with requirement
-- option 1
select (IsNull(first_n ame,'') + ' ' + Case Len(middle_name ) when 0 then
'' else IsNull((middle_ name + ' '),'') end + IsNull(last_nam e,'')) as
name
from #cat
-- option 2
select (IsNull(first_n ame,'') + ' ' +
IsNull(NullIf(C oalesce((middle _name + ' '),''),''),'') +
IsNull(last_nam e,'')) as name
from #cat
q:
both option 1 and option 2 produces same result, which one is more
desirable?
TIA.
Comment