Note that there are some explanatory texts on larger screens.

plurals
  1. POReplacing NULL from results of CASE query
    primarykey
    data
    text
    <p>I have the following code which generates data similar to mine. The posting here (<a href="https://stackoverflow.com/questions/1343145/tsql-pivot-without-aggregate-function">PivotWithoutAggregateFunction</a>) suggested that using a CASE statement rather than PIVOT was better for non-numeric values. Which if this is not true then I guess now is the time to fix it !</p> <pre><code> DECLARE @QA1 TABLE (SID varchar(7), FormID varchar(max), DateExam date, Present varchar(3)) INSERT INTO @QA1 VALUES(1, 'Form1', '20110101', 'Yes') INSERT INTO @QA1 VALUES(2, 'Form1', '20110201', 'Yes') INSERT INTO @QA1 VALUES(3, 'Form1', '20110301', 'Yes') INSERT INTO @QA1 VALUES(4, 'Form1', '20110401', 'Yes') INSERT INTO @QA1 VALUES(5, 'Form1', '20110122', 'Yes') INSERT INTO @QA1 VALUES(1, 'Form2', '20110222', 'Yes') INSERT INTO @QA1 VALUES(2, 'Form2', '20110322', 'Yes') INSERT INTO @QA1 VALUES(3, 'Form2', '20110422', 'Yes') INSERT INTO @QA1 VALUES(1, 'Form3', '20110128', 'Yes') INSERT INTO @QA1 VALUES(1, 'Form4', '20110228', 'Yes') INSERT INTO @QA1 VALUES(5, 'Form5', '20110328', 'Yes') INSERT INTO @QA1 VALUES(5, 'Form6', '20111228', 'Yes') INSERT INTO @QA1 VALUES(4, 'Form2', '20111228', 'Yes') SELECT SID, MIN(CASE FormID WHEN 'Form1' THEN Present END) AS 'First', MIN(CASE FormID WHEN 'Form2' THEN Present END) AS 'Second', MIN(CASE FormID WHEN 'Form3' THEN Present END) AS 'Third', MIN(CASE FormID WHEN 'Form4' THEN Present END) AS 'Fourth', MIN(CASE FormID WHEN 'Form5' THEN Present END) AS 'Fifth', MIN(CASE FormID WHEN 'Form6' THEN Present END) AS 'Sixth' FROM @QA1 GROUP BY SID ORDER BY SID </code></pre> <p>However, the output has NULL in Row/Columns which do not have any forms which while correct is much harder for me to read. </p> <pre><code> SID First Second Third Fourth Fifth Sixth 1 Yes Yes Yes Yes NULL NULL 2 Yes Yes NULL NULL NULL NULL 3 Yes Yes NULL NULL NULL NULL 4 Yes Yes NULL NULL NULL NULL 5 Yes NULL NULL NULL Yes Yes </code></pre> <p>How can I alter my CASE so I either get nothing (ie '') or at least 'No' ?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload