stephenlecomptejr
asked on
T-SQL Remove NULL values from query
This is a continuation of question: https://www.experts-exchange.com/questions/28334234/Please-help-with-creating-a-view-between-two-tables-and-a-column-that-needs-to-be-parsed.html
With the following SQL script:
How may I adjust it so that there are no NULL values shown as records in the second discipline column?
The result of this comes more NULLs than anything:
12151 NULL
12177 NULL
12184 NULL
12185 NULL
12250 NULL
12289 NULL
12462 NULL
12485 NULL
12502 NULL
12508 NULL
13008 NULL
13065 NULL
13066 NULL
13076 NULL
13078 NULL
13128 NULL
13167 NULL
13173 NULL
13340 NULL
13360 NULL
13367 NULL
8236 ACOUSTICS
8238 ACOUSTICS
8254 ACOUSTICS
8277 ACOUSTICS
8351 ACOUSTICS
8354 ACOUSTICS
8362 ACOUSTICS
8363 ACOUSTICS
8379 ACOUSTICS
8392 ACOUSTICS
8406 ACOUSTICS
8430 ACOUSTICS
and I just want to not show NULLs in the results.
Thank you in advance!
With the following SQL script:
select t1.WBS1
, stuff((select ', '+ t2.Label as "data()"
from table2 t2
where t1.Org like '%:' + t2.Code
and t2.code not in ( 'RE', '00' )
for xml path('')), 1, 2, '') Discipline
from table1 t1
group by t1.WBS1, t1.Org
How may I adjust it so that there are no NULL values shown as records in the second discipline column?
The result of this comes more NULLs than anything:
12151 NULL
12177 NULL
12184 NULL
12185 NULL
12250 NULL
12289 NULL
12462 NULL
12485 NULL
12502 NULL
12508 NULL
13008 NULL
13065 NULL
13066 NULL
13076 NULL
13078 NULL
13128 NULL
13167 NULL
13173 NULL
13340 NULL
13360 NULL
13367 NULL
8236 ACOUSTICS
8238 ACOUSTICS
8254 ACOUSTICS
8277 ACOUSTICS
8351 ACOUSTICS
8354 ACOUSTICS
8362 ACOUSTICS
8363 ACOUSTICS
8379 ACOUSTICS
8392 ACOUSTICS
8406 ACOUSTICS
8430 ACOUSTICS
and I just want to not show NULLs in the results.
Thank you in advance!
ASKER
The only problem with that result is now the first column that shows with NULLs start as
NULL INFO TECHNOLOGY
NULL THEATER
NULL INFO TECHNOLOGY
NULL AUDIOVISUAL
NULL ACCOUNTING
NULL SECURITY
NULL THEATER
NULL ACOUSTICS
NULL DATA CENTER
NULL AUDIOVISUAL
NULL DATA CENTER
NULL INFO TECHNOLOGY
NULL PROJECT MANAGEMENT
NULL AUDIOVISUAL
NULL SECURITY
NULL DATA CENTER
NULL AUDIOVISUAL
NULL SECURITY
NULL AUDIOVISUAL
NULL MARKETING
NULL AUDIOVISUAL
NULL DATA CENTER
NULL INFO TECHNOLOGY
NULL ACOUSTICS
NULL AUDIOVISUAL
NULL ACOUSTICS
NULL DATA CENTER
NULL INFO TECHNOLOGY
NULL SECURITY
NULL THEATER
NULL AUDIOVISUAL
NULL INFO TECHNOLOGY
NULL ACOUSTICS
20 ACOUSTICS
24 AUDIOVISUAL
27 ACOUSTICS
29 ACOUSTICS
33 AUDIOVISUAL
36 ACOUSTICS
I guess I need it to not show NULLs in the first column as well as the second.
Sorry about that.
NULL INFO TECHNOLOGY
NULL THEATER
NULL INFO TECHNOLOGY
NULL AUDIOVISUAL
NULL ACCOUNTING
NULL SECURITY
NULL THEATER
NULL ACOUSTICS
NULL DATA CENTER
NULL AUDIOVISUAL
NULL DATA CENTER
NULL INFO TECHNOLOGY
NULL PROJECT MANAGEMENT
NULL AUDIOVISUAL
NULL SECURITY
NULL DATA CENTER
NULL AUDIOVISUAL
NULL SECURITY
NULL AUDIOVISUAL
NULL MARKETING
NULL AUDIOVISUAL
NULL DATA CENTER
NULL INFO TECHNOLOGY
NULL ACOUSTICS
NULL AUDIOVISUAL
NULL ACOUSTICS
NULL DATA CENTER
NULL INFO TECHNOLOGY
NULL SECURITY
NULL THEATER
NULL AUDIOVISUAL
NULL INFO TECHNOLOGY
NULL ACOUSTICS
20 ACOUSTICS
24 AUDIOVISUAL
27 ACOUSTICS
29 ACOUSTICS
33 AUDIOVISUAL
36 ACOUSTICS
I guess I need it to not show NULLs in the first column as well as the second.
Sorry about that.
that one should be simple:
select t1.WBS1
, stuff((select ', '+ t2.Label as "data()"
from table2 t2
where t1.Org like '%:' + t2.Code
and t2.code not in ( 'RE', '00' )
for xml path('')), 1, 2, '') Discipline
from table1 t1
WHERE t1.WBS1 is not null
AND EXISTS( select ', '+ t2.Label as "data()"
from table2 t2
where t1.Org like '%:' + t2.Code
and t2.code not in ( 'RE', '00' )
)
group by t1.WBS1, t1.Org
ASKER
Thank you Jim. I didn't realize it till too late.
ASKER
Hey Guy,
Sorry for this but I couldn't see this until now its working.
How do I through in the syntax an order by to sort by WBS1?
Sorry for this but I couldn't see this until now its working.
How do I through in the syntax an order by to sort by WBS1?
ASKER
Also too Guy,
as I run the above query the values are not separated by commas now....
as I run the above query the values are not separated by commas now....
for the "order by", just put ORDER BY WBS1 after the GROUP BY line
not sure why the "commas" would disappear ...
not sure why the "commas" would disappear ...
ASKER
So let me show you the results to be clear on what I'm talking about in an attached image file.
Table1 is PR in my actual setup. Table2 is CFGOrgCodesDescriptions.
Here is the code I'm using:
And please note the results in the image where duplicates are appearing.
Sample-Messup.png
Table1 is PR in my actual setup. Table2 is CFGOrgCodesDescriptions.
Here is the code I'm using:
select t1.WBS1
, stuff((select ', '+ t2.Label as "data()"
from CFGOrgCodesDescriptions t2
where t1.Org like '%:' + t2.Code
and t2.code not in ( 'RE', '00' )
for xml path('')), 1, 2, '') Discipline
from PR t1
WHERE t1.WBS1 is not null
AND EXISTS( select ', '+ t2.Label as "data()"
from CFGOrgCodesDescriptions t2
where t1.Org like '%:' + t2.Code
and t2.code not in ( 'RE', '00' )
)
group by t1.WBS1, t1.Org ORDER BY WBS1
And please note the results in the image where duplicates are appearing.
Sample-Messup.png
amended and tested code:
select t1.WBS1
, stuff((select ', '+ t2.Label as "data()"
from PR x
join CFGOrgCodesDescriptions t2
on x.Org like '%:' + t2.Code
and t2.code not in ( 'RE', '00' )
where x.WBS1 = t1.WBS1
for xml path('')), 1, 2, '')
Discipline
from PR t1
WHERE t1.WBS1 is not null
AND EXISTS( select null
from PR x
join CFGOrgCodesDescriptions t2
on t1.Org like '%:' + t2.Code
and t2.code not in ( 'RE', '00' )
where x.wbs1 = t1.wbs1
)
group by t1.WBS1
ORDER BY WBS1
ASKER
Guy this is great stuff.
But (I'm sorry to ask you this) - if let's say ACOUSTICS appears more than once - we don't want it to repeat for that WBS1 - we just want it the one time.
Please note attachment...
Sample-Messup2.png
But (I'm sorry to ask you this) - if let's say ACOUSTICS appears more than once - we don't want it to repeat for that WBS1 - we just want it the one time.
Please note attachment...
Sample-Messup2.png
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you so much.
It works great! You are fantastic.
It works great! You are fantastic.
ASKER
Appreciate it so much.
Open in new window