关于存储过程中构造一个字段排序的问题!

weinaxxc 2008-09-27 12:00:05

select *,(select a from c where cid=b.bid) as sheng from b order by sheng

这样的语句直接使用是可以的,但是在一般的存储过程中,往往由于分页问题,在进行排序后再分页的时候会报这个构造的sheng找不到,因为它不是表b里面的字段,而是构造出来的一个字段,
大家有碰到这样的问题吗?
...全文
84 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weinaxxc 2008-09-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qinhl99 的回复:]
那在外层再加一个select,同意,一般也就是这样!
[/Quote]

如果在数据量大的情况下,多个构造字段排序,你加这么多SELECT,还要分页,肯定效率很低
weinaxxc 2008-09-27
  • 打赏
  • 举报
回复
那谁有一个分页的存储过程能进行这样的排序吗?
如果用这样的写法

select b.*,c.a sheng from b left join c on b.bid=c.cid order by sheng

那么分页的存储过程中怎么写呢?有时候你不得不构造多个这样的字段来排序,这仅仅是一个
fcuandy 2008-09-27
  • 打赏
  • 举报
回复
select b.*,c.a sheng from b left join c on b.bid=c.cid order by sheng
fcuandy 2008-09-27
  • 打赏
  • 举报
回复
select a.*,c.a sheng from b left join c on b.bid=c.cid order by sheng
heping173 2008-09-27
  • 打赏
  • 举报
回复
写成一个视图应该可以
chuifengde 2008-09-27
  • 打赏
  • 举报
回复
那在外层再加一个select ,如:
select * from
(
select *,(select a from c where cid=b.bid) as sheng from b
)aa
order by sheng
qinhl99 2008-09-27
  • 打赏
  • 举报
回复
那在外层再加一个select,同意,一般也就是这样!
weinaxxc 2008-09-27
  • 打赏
  • 举报
回复
我顶!

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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