当前位置: 代码迷 >> Sql Server >> 关于select 排序的有关问题
  详细解决方案

关于select 排序的有关问题

热度:68   发布时间:2016-04-24 10:20:07.0
关于select 排序的问题
我有一个字段(联片),数据类型是varchar的,
里面的数据是,T1,T2,T3,T4.....T10,T11...
然后我想order by  联片 ASC"

但是排序会变成T1,T10,T11。。。。
要怎么让他变成T1,T2。。。。顺序下来啊。
------解决方案--------------------
select * from  tb  order by  Cast (replace(联片 ,'T','') as int) Asc

------解决方案--------------------
这跟你排序规则有关吧
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(發糞塗牆)
-- Date    :2014-07-18 11:18:06
-- Version:
--      Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
-- May 14 2014 18:34:29 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
go 
create table [TB]([name] varchar(3))
insert [TB]
select 'T1' union all
select 'T2' union all
select 'T3' union all
select 'T10' union all
select 'T11' union all
select 'T12'
--------------开始查询--------------------------

select * from [TB]
----------------结果----------------------------
/* 
name
----
T1
T2
T3
T10
T11
T12
*/
  相关解决方案