如何临时根据数值字符进行排序

sqlbeginner888 2007-02-11 03:14:35
一个表,其中有一列Character是nvarch(),如下

ID Char content
1 1 x
2 10 y
3 12 z
4 7 y
5 8 z

我不想把character列改成int类的值,但我又想根据其中的字符进行排序,生成如下的

视图

ID Char content
1 1 x
4 7 y
5 8 z
2 10 y
3 12 z

怎么办?谢谢
...全文
253 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hrb2008 2007-02-12
  • 打赏
  • 举报
回复
楼上的思路挺好
withcsharp 2007-02-12
  • 打赏
  • 举报
回复
declare @T table (ID int, [Char] varchar(10), content varchar(10))
insert @T select 1, '1', 'x'
union all select 2, '10', 'y'
union all select 3, '12', 'z'
union all select 4, '7', 'y'
union all select 5, '8', 'z'

select * from @t order by len([Char]),[Char]




(5 行受影响)
ID Char content
----------- ---------- ----------
1 1 x
4 7 y
5 8 z
2 10 y
3 12 z

marco08 2007-02-11
  • 打赏
  • 举报
回复

create table T(ID int, [Char] varchar(10), content varchar(10))
insert T select 1, '1', 'x'
union all select 2, '10', 'y'
union all select 3, '12', 'z'
union all select 4, '7', 'y'
union all select 5, '8', 'z'


select * from T
order by
case when isnumeric([Char])=1 then cast([Char] as int) end

--result
ID Char content
----------- ---------- ----------
1 1 x
4 7 y
5 8 z
2 10 y
3 12 z

(5 row(s) affected)
wojila 2007-02-11
  • 打赏
  • 举报
回复
直接创建撒~
create view
as
select * from 表1
order by [Char]
这个数据类型不影响排序,谢谢~~~
OracleRoob 2007-02-11
  • 打赏
  • 举报
回复

select *
from 表名
order by cast([char] as int)

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧