平時排序
select 字段 from 表名 where 條件 order by 根據字段排序 desc 從大到小排序(降序)
select 字段 from 表名 where 條件 order by 根據字段排序 asc 從小到大排序(升序)
排序 去除了1、11、2
SELECT * FROM test ORDER BY (id-0)
select* from user order by cast(字段 AS DECIMAL)
有的時候我需要根據樓層進行排序
比如B3、B2、B1、1F、2F .....
這個時候用不同排序手法是肯定不行了
這個時候 我們就需要這么寫
select 字段 from 表名 where 條件 order by cast(字段 as decimal) asc, SUBSTRING(字段,1,2)desc
首先按照升序排,然后在照字段中的某個值進行排序
Sql中的cast函數用於將某種數據類型的表達式顯示的轉換成位另一種數據類型。
cast()函數的參數是一個表達式,它包括用as關鍵字分割的源值和目標數據類型
語法 cast(expression as date_type)
expression:任何有效的SQServer表達式。
AS:用於分隔兩個參數,在AS之前的是要處理的數據,在AS之后是要轉換的數據類型。
data_type:目標系統所提供的數據類型,包括bigint和sql_variant,不能使用用戶定義的數據類型。
可以轉換的類型是有限制的。這個類型可以是以下值其中的一個:
二進制,同帶binary前綴的效果 : BINARY
字符型,可帶參數 : CHAR()
日期 : DATE
時間: TIME
日期時間型 : DATETIME
浮點數 : DECIMAL
整數 : SIGNED
無符號整數 : UNSIGNED