最近没事试着写一些简单的存储过程,因为之前不多用到或者不多本身写存储过程。因此历尽各类艰难,让本身也备受打击。html
这是我写的两种排序,一种是使用 not in sql

另外一种使用的是row_number,数据库

说一下我在写的时候进入的一个误区我在使用row_number的时候最后须要拼sql语句刚开始在行号的比较的时候我是这样写的post
“url
WHERE a> '''+@startnum+''' AND a <'''@endnum+''''spa
”code
而后在创建存储过程的时候没有报错,但在执行存储过程的时候开始出错。。我刚开始觉得是个人‘号的不对,而后尝试了各类放置位置,到最后我翻了之前数据库里的存储过程,htm
才明白本身把这里当成了像VS同样的string字符串的拼接,可是@参数是一个int类型,两种不一样的类型是拼不到一块的(不包括能够隐式转换的类型)。后来使用了convert()方法blog
将参数转化为varchar格式再拼接进去就行了。排序
还有一点就是row_number与rank 的不一样,两个虽然均可以用在排序里,可是row_number 只仅仅是一行行数据的排列,不涉及相同排序的依据,每一行数据返回不一样的bigint
值。而rank倒是相同的排序依据回返回相同的bigint值。详情请参阅http://bear-study-hard.cnblogs.com/archive/2006/02/09/327723.html