Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Fare riferimento a un alias altrove nell'elenco SELECT

Non puoi fare riferimento a un alias al di fuori di SELECT e ORDER BY a causa del modo in cui viene analizzata una query. Una soluzione alternativa tipica consiste nel seppellirlo in una tabella derivata:

SELECT 
  FirstName, LastName, Other, 
  Flag = CASE WHEN Other IS NOT NULL THEN 1 ELSE 0 END
FROM 
(
  SELECT FirstName, LastName,
    CASE WHEN LastName = 'Jones'
     THEN 'N/A'
    END AS Other
  FROM dbo.table_name
) AS x;