lsmwell

anything about me~!
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

关于SELECT TOP 的一次操作

Posted on 2005-06-18 08:58  2well  阅读(2344)  评论(0)    收藏  举报
今天写了个SELECT语句:SELECT TOP @ NUM * FROM XXXX 一执行,呵呵,居然错误,呵呵,到底是怎么回事情呢~?
大家都知道SELECT TOP 3 * FROM XXXX 是能执行的,但是如果要把这个3写成3*3,呵呵,那就不行了,郁闷把!
但是在用的时候,我们往往要把这个TOP 3弄成一个TOP @NUM  这样才符合我们的需要么,嘿嘿!
我于是上GOOGLE去GO了一下,
原来这里面还是有技巧的说.来看一下代码
DECLARE @SQL VARCHAR(100)
DECLARE @NUM INT 
SET @NUM = 3
SET @SQL = 'SELECT TOP '+CAST(@NUM AS VARCHAR(20))+' * FROM XXXX '
EXEC(@SQL)
--PRAINT(@SQL)


呵呵,有意思把! 其实SQL 还是执行了 SELECT TOP 3 * FROM XXXX 
原理就不用说了把,但是里面有个小技巧,有时候会发生错误,这个时候你就要用
PRAINT出来看一下SQL语句是不是正确的了,因为我们的SQL语句在字符串里,系统是检查不出来哦~!
哎!!我的文笔实在是太差了,连说话能力都有问题,估计,呵呵,还有问题的话,上GOOGLE里找去落!(喂,GOOGLE,你要给广告费了~!)
另外说明,SQL SERVER 2005是可以直接用代参数的TOP的哦,就不用这么麻烦类~~!微软的东西,哎~~!