2016-06-28 9 views
1

Ich hoffe, Sie können mir helfen. Bin ein Auszubildender Analyst also brauche eine Hand. Bitte beachten Sie unter Abfrage:Ohne 'Nullen' aus Alias-Spalte

SELECT [PATHWAY_ID], [PAS_ID], [Patient_Name], [Pathway_Specialty], [Clinician], 
     [Referral_priority], [RTT_START_DTTM], [Days Waiting], [Activity Type], 
     [Last Activity Type], [Next_Appt_DTTM], [First_Appointment_Flag], 
     CASE WHEN [Days Waiting] <=97 AND [Next_Appt_DTTM] IS NOT NULL THEN 'Booked' 
      WHEN [Days Waiting] >=98 AND [Next_Appt_DTTM] IS NULL THEN 'Unbooked' 
     END AS 'Booked Status' 
FROM [GWH_RTT].[rtt].[GWH_RTT_Nonadmitted_PTL] 
WHERE [Referral_priority] = 'Routine' 
ORDER BY 'Booked Status' DESC 

In meiner Alias-Spalte Ich habe Nulls da drin, die nicht meinen Fall Aussage überein. Wie fordere ich SQL auf, meine case-Anweisung zurückzugeben, die die Nulls in meiner Alias-Spalte ausschließt?

+0

, dass ein Fall Ausdruck ist (es gibt einen Wert). Eine case-Anweisung ist nur die bedingte Ausführung von Code (zum Beispiel in einer gespeicherten Prozedur). – jarlh

+0

Danke, habe ich das nicht bemerkt :) – Ang

Antwort

1

Wie über eine Unterabfrage oder CTE mit:

with q as (<your query here without the order by>) 
select q.* 
from q 
where [Booked Status] is not null 
order by [Booked Status]; 

Ein Wort der Beratung: nicht Apostrophe für Spaltenaliasnamen verwenden. Verwenden Sie nur einfache Anführungszeichen für Datums- und String-Konstanten. Sie können in SQL Server eckige Klammern oder doppelte Anführungszeichen verwenden.

1

Try this:

SELECT t.* 
FROM (SELECT [PATHWAY_ID], [PAS_ID], [Patient_Name], [Pathway_Specialty], [Clinician], 
     [Referral_priority], [RTT_START_DTTM], [Days Waiting], [Activity Type], 
     [Last Activity Type], [Next_Appt_DTTM], [First_Appointment_Flag], 
     CASE WHEN [Days Waiting] <=97 AND [Next_Appt_DTTM] IS NOT NULL THEN 'Booked' 
      WHEN [Days Waiting] >=98 AND [Next_Appt_DTTM] IS NULL THEN 'Unbooked' 
     END AS 'Booked Status' 
FROM [GWH_RTT].[rtt].[GWH_RTT_Nonadmitted_PTL] 
WHERE [Referral_priority] = 'Routine' 
) t 
WHERE t.[Booked Status] IS NOT NULL 
ORDER BY [Booked Status] DESC