SQL 语句排序问题

enshizhouyu 2009-07-23 10:24:09
有一个表 news
有三个字段 Id Name Type
有数据 1 a 国际
2 ae 国内
3 abc 国内
4 aec 国际
我要让它的排序时按照Name字段中数据的长短(比方说:a就是1 ae就是2 abc就是3 )排列出来
但是在abc 和 aec 这是同一个级别上的时候国际的要在国内的前面!

谢谢各位大哥了 这是我的面试题目啊 我就靠它吃饭了啊!!
...全文
59 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
enshizhouyu 2009-07-23
  • 打赏
  • 举报
回复
谢谢各位大侠 应该过了
chuifengde 2009-07-23
  • 打赏
  • 举报
回复
SELECT * FROM [Table] ORDER BY LEN(NAME),3
仙道彰 2009-07-23
  • 打赏
  • 举报
回复
select * 
from news
order by len(name),case when type='国际' then 0 else 1 end


预祝楼主面试成功
fwacky 2009-07-23
  • 打赏
  • 举报
回复

create table enshizhouyu( Id int , Name varchar(20), Type varchar(20))
insert into enshizhouyu
select 1 , 'a ' , '国际' union all
select 2 , 'ae' , '国内' union all
select 3 , 'abc' , '国内' union all
select 4 , 'aec' , '国际'



select Id,Name,Type from (
select *,(case [Type] when '国际' then 0 else 1 end) as ascid
from enshizhouyu )A
order by len(Name),A.ascid

=============

/*--Id Name Type
----------- ---------- ----------
1 a 国际
2 ae 国内
4 aec 国际
3 abc 国内

izbox 2009-07-23
  • 打赏
  • 举报
回复

select *
from news
order by len(name),case when type='国际' then 0 else 1 end
feixianxxx 2009-07-23
  • 打赏
  • 举报
回复
-- =========================================
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================

IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(Id int,Name varchar(10),Type varchar(10) )
go
insert tb SELECT

1 , 'a' , ' 国际' UNION ALL SELECT
2 , 'ae' , '国内' UNION ALL SELECT
3 , 'abc' , '国内' UNION ALL SELECT
4 , 'aec' , '国际'

select *
from tb
order by len(name),case when type='国际' then 0 else 1 end



go
/*--Id Name Type
----------- ---------- ----------
1 a 国际
2 ae 国内
4 aec 国际
3 abc 国内
----------

-------*/
feixianxxx 2009-07-23
  • 打赏
  • 举报
回复
select * 
from news
order by len(name),case when type='国际' then 0 else 1 end

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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