我有一个字段(联片),数据类型是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
*/