How do I sort a VARCHAR column in SQL server that contains numbers?

后端 未结 11 1989
慢半拍i
慢半拍i 2020-11-27 14:08

I have a VARCHAR column in a SQL Server 2000 database that can contain either letters or numbers. It depends on how the application is configured o

11条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-27 14:14

    SELECT FIELD FROM TABLE
    ORDER BY 
      isnumeric(FIELD) desc, 
      CASE ISNUMERIC(test) 
        WHEN 1 THEN CAST(CAST(test AS MONEY) AS INT)
        ELSE NULL 
      END,
      FIELD
    

    As per this link you need to cast to MONEY then INT to avoid ordering '$' as a number.

提交回复
热议问题