Author |
Topic |
SQLIsTheDevil
Posting Yak Master
177 Posts |
Posted - 2008-01-23 : 17:21:21
|
quote: Column A Column B Column C Column D1 6 10 151 6 NULL 151 6 NULL NULL1 7 10 161 7 NULL 161 7 NULL NULL1 NULL NULL NULL2 8 11 172 8 NULL 172 8 NULL NULL2 NULL NULL NULL3 9 12 183 9 NULL 183 9 NULL NULL3 NULL NULL NULL4 6 13 194 6 NULL 194 6 NULL NULL4 NULL NULL NULL5 8 14 205 8 NULL 205 8 NULL NULL5 NULL NULL NULLNULL NULL NULL NULL
I have the above table. What I'd like to do is filter out all the rows that have at least one null value. Essentially, I'd be left with all rows that contain only data (in this case, numbers). How may I go about accomplishing this task? |
|
Lamprey
Master Smack Fu Yak Hacker
4614 Posts |
Posted - 2008-01-23 : 17:25:39
|
Here is one way:DECLARE @Yak TABLE (ColA INT, ColB INT, ColC INT, ColD INT)INSERT @YakSELECT 1, 6, 10, 15UNION ALL SELECT 1, 6, NULL, 15UNION ALL SELECT 1, 6, NULL, NULLUNION ALL SELECT 1, 7, 10, 16UNION ALL SELECT 1, 7, NULL, 16UNION ALL SELECT 1, 7, NULL, NULLUNION ALL SELECT 1, NULL, NULL, NULLUNION ALL SELECT 2, 8, 11, 17UNION ALL SELECT 2, 8, NULL, 17UNION ALL SELECT 2, 8, NULL, NULLUNION ALL SELECT 2, NULL, NULL, NULLUNION ALL SELECT 3, 9, 12, 18UNION ALL SELECT 3, 9, NULL, 18UNION ALL SELECT 3, 9, NULL, NULLUNION ALL SELECT 3, NULL, NULL, NULLUNION ALL SELECT 4, 6, 13, 19UNION ALL SELECT 4, 6, NULL, 19UNION ALL SELECT 4, 6, NULL, NULLUNION ALL SELECT 4, NULL, NULL, NULLUNION ALL SELECT 5, 8, 14, 20UNION ALL SELECT 5, 8, NULL, 20UNION ALL SELECT 5, 8, NULL, NULLUNION ALL SELECT 5, NULL, NULL, NULLUNION ALL SELECT NULL, NULL, NULL, NULLSELECT *FROM @YakWHERE ColA IS NOT NULL AND ColB IS NOT NULL AND ColC IS NOT NULL AND ColD IS NOT NULL |
 |
|
TG
Master Smack Fu Yak Hacker
6065 Posts |
Posted - 2008-01-23 : 17:26:56
|
Here is another (no better but different: select * from myTable ColA=ColA AND ColB=ColB AND ColC=ColC [AND ...]Be One with the OptimizerTG |
 |
|
hey001us
Posting Yak Master
185 Posts |
Posted - 2008-01-23 : 17:27:41
|
WHERE ([Column A] IS NULL OR [Column B] IS NULL OR [Column C] IS NULL OR [Column D] IS NULL)hey |
 |
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2008-01-24 : 01:52:53
|
One improper wayWHERE ColA >'' AND ColB >'' AND ColC >'' AND ColD >'' MadhivananFailing to plan is Planning to fail |
 |
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2008-01-24 : 01:54:52
|
quote: Originally posted by hey001us WHERE ([Column A] IS NULL OR [Column B] IS NULL OR [Column C] IS NULL OR [Column D] IS NULL)hey
Opposite of what was askedMadhivananFailing to plan is Planning to fail |
 |
|
johnsql
Posting Yak Master
161 Posts |
Posted - 2008-01-24 : 11:15:04
|
quote: Originally posted by Lamprey Here is one way:DECLARE @Yak TABLE (ColA INT, ColB INT, ColC INT, ColD INT)INSERT @YakSELECT 1, 6, 10, 15UNION ALL SELECT 1, 6, NULL, 15UNION ALL SELECT 1, 6, NULL, NULLUNION ALL SELECT 1, 7, 10, 16UNION ALL SELECT 1, 7, NULL, 16UNION ALL SELECT 1, 7, NULL, NULLUNION ALL SELECT 1, NULL, NULL, NULLUNION ALL SELECT 2, 8, 11, 17UNION ALL SELECT 2, 8, NULL, 17UNION ALL SELECT 2, 8, NULL, NULLUNION ALL SELECT 2, NULL, NULL, NULLUNION ALL SELECT 3, 9, 12, 18UNION ALL SELECT 3, 9, NULL, 18UNION ALL SELECT 3, 9, NULL, NULLUNION ALL SELECT 3, NULL, NULL, NULLUNION ALL SELECT 4, 6, 13, 19UNION ALL SELECT 4, 6, NULL, 19UNION ALL SELECT 4, 6, NULL, NULLUNION ALL SELECT 4, NULL, NULL, NULLUNION ALL SELECT 5, 8, 14, 20UNION ALL SELECT 5, 8, NULL, 20UNION ALL SELECT 5, 8, NULL, NULLUNION ALL SELECT 5, NULL, NULL, NULLUNION ALL SELECT NULL, NULL, NULL, NULLSELECT *FROM @YakWHERE ColA IS NOT NULL AND ColB IS NOT NULL AND ColC IS NOT NULL AND ColD IS NOT NULL
Here is another approach: select * from @t where (colA + colB + ColC + ColD) is not null |
 |
|
TG
Master Smack Fu Yak Hacker
6065 Posts |
Posted - 2008-01-24 : 12:51:54
|
quote: Here is another approach: select * from @t where (colA + colB + ColC + ColD) is not null
The datatypes have to "play well togeter" for this approach.Be One with the OptimizerTG |
 |
|
|
|
|