CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

存储过程中,select 后 order by 跟变量怎么做?

楼主Codavid()2006-03-04 14:28:33 在 MS-SQL Server / 基础类 提问

我想写一个存储过程,根据不同的参数,选择不同的order方式  
  CREATE   PROCEDURE   procTest1  
  @p1   char<--有错  
  AS  
  SELECT   *   from   test1   order   by   @p1  
   
  f5时,系统说:  
  ORDER   BY   子句所标识的第   1   个   SELECT   项包含了一个变量,该变量位于标识列位置的表达式中。只有排序依据表达式引用的是列名时,才允许在该表达式中使用变量。  
       ^^^^^^  
   
  引用列名怎么做啊?? 问题点数:20、回复次数:5Top

1 楼wendaocaofan(提高自己)回复于 2006-03-04 14:36:24 得分 0

不同的变量做不同的引用啊?Top

2 楼wgsasd311(自强不息)回复于 2006-03-04 14:38:39 得分 0

CREATE   PROCEDURE   procTest1  
  @p1   varchar(40)  
  AS  
  exec('SELECT   *   from   test1   order   by   '+@p1)Top

3 楼Codavid()回复于 2006-03-04 14:53:59 得分 0

楼上的是个好方法,但要是名字错了,怎么办?Top

4 楼wgsasd311(自强不息)回复于 2006-03-04 14:59:34 得分 20

CREATE   PROCEDURE   procTest1  
  @p1   varchar(40)  
  AS  
  if     exists(select   1   from   syscolumns   where   id=object_id('test1')   and   name=@p1)  
  exec('SELECT   *   from   test1   order   by   '+@p1)  
   
   
  go  
  Top

5 楼Codavid()回复于 2006-03-04 21:53:12 得分 0

哈哈,谢谢!  
  select后为什么跟1??Top

相关问题

  • 存储过程OUT变量?
  • 如何在sql server的存储过程中使用select 栏位名 into 变量名
  • 请问select语句中能不能用变量名(关于存储过程的)?
  • 如何得到存储过程中 select语句的结果(表名为变量)
  • 在存储过程中设置变量SELECT与SET有什么不同
  • 存储过程变量问题
  • 存储过程的变量的问题
  • 存储过程中的变量问题
  • 100分求助,存储过程中order by后为什么不能跟变量,怎么解决
  • 如何在存储过程中根据INPUT变量,动态的生成SELECT语句(解决就给分)

关键词

  • 变量
  • 表达式
  • 引用
  • order
  • procedure proctest
  • 不同
  • create
  • test
  • select

得分解答快速导航

  • 帖主:Codavid
  • wgsasd311

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo