views:

134

answers:

4

I have a table with the fields CommonName and FirstName. Only either field has data, never both. Is there a way to order rows in an intersecting manner on SQL Server?

Example:

CommonName FirstName
Bern
           Wade
Ashley
Boris
           Ayana

I want records ordered like this:

CommonName FirstName
Ashley
           Ayana
Bern
Boris
           Wade

Is this possible, and if so, how?

+2  A: 

Use a CASE statement to select the value for that row and ORDER BY that.

Hank Gay
+1  A: 

ORDER BY CommonName + FirstName, with appropriate ISNULL(<column>, '') if they are nullable.

AakashM
+1  A: 
ORDER BY
  CASE
    WHEN CommonName is null
    THEN FirstName
    ELSE CommonName
  END
David B
A: 
order by coalesce(CommonName, FirstName)
msi77