欢迎来到天天文库
浏览记录
ID:24218281
大小:50.00 KB
页数:3页
时间:2018-11-13
《sql存储过程中传入参数实现任意字段排序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、SQL存储过程中传入参数实现任意字段排序>>教育资源库 在做一个project的时候,要对表实现任意的排序,说得明白点就是这样: 在存储过程中声明一个parameter,然后在使用查询条件后的排序,要根据我的parameter来实现,而我这个parameter实际传进去的就是一个字段值。 网上Google了一下,发现有这样的例子,大多数都是以普提树的多字段任意分页的存储过程结合在一起,看起来好不复杂,而我现在没必要搞分页,没有办法实现吗??? 我先按常理搞了一个这样的:select*fromSiteDetailInfoeterdesc 在查询分析器中运行报错: ORDERBY子句所
2、标识的第%1!个SELECT项包含了一个变量,该变量位于标识列位置的表达式中。只有排序依据表达式引用的是列名时,才允许在该表达式中使用变量。 好像语法上有问题,这是意料之中的,隐约记得应该加上单引号之类的,问了一下网友史帝尔,很快就丢过答案过来了,果然是有点语法上的问题. 修正如下:create procedure proc_testfieldname varchar(50)asdeclare sql varchar(1000)set sql=update [table] set + fieldname + = + fieldname + +1exec(
3、sql)go 或者:declare field varcahr(10)update table (case field eee'THENpanyNameELSENULLEND,CASEColNameWHEN'Phone'THENPhoneELSENULLEND 哇噻,不错不错,这样考虑得很周全喔,不过我这表中有20来个字段,难道要一个一个去Case吗?哈哈,哈哈,自己权衡两种方法的利弊吧。 第一种方法:比较简单,但是如果字段值出错的话,那就容易出错的了,这个问题应该可以在你程序中写死你在表中的字段的吧。 第二种方法:比较周全,当然,如果你一个表有10
4、个以上的字段,要你一个一个去Case的话,那就不知你能不能顶得住了,假如有50个字段的话(像企业信息表之类的)>>>>这篇文章来自..,。
此文档下载收益归作者所有