请教邹建新书中的一个简单问题

PragmaticProgrammer 2006-01-21 09:43:02
P82,3.5.4节 借用字符串实现无规律排序
书中例子如下:

DECLARE @t TABLE(职务 nvarchar(10))
INSERT @t SELECT '总经理'
UNION ALL SELECT '经理'
UNION ALL SELECT '科长'
UNION ALL SELECT '部长'
UNION ALL SELECT '员工'

DECLARE @s nvarchar(100)
SET @s=N'总经理,部长,员工,科长,经理'

SELECT * FROM @t
ORDER BY CHARINDEX(','+职务+',',','+@s+',')

/*--结果
职务
----------
总经理
部长
员工
科长
经理
--*/

我感觉挺奥妙的,但始终参透不了ORDER BY的这种用法,还请大家帮忙分析一下,谢过!
...全文
103 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppact 2006-01-22
  • 打赏
  • 举报
回复
by 一个数字?
lsqkeke 2006-01-22
  • 打赏
  • 举报
回复
CHARINDEX(','+职务+',',','+@s+',')
得出的是一组数字 0 1 6 9 ..
order by 是默认排序为递增的
自然就实现了 无规律排序 按照你@s定的顺序排列

34,873

社区成员

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

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