这样: CREATE PROCEDURE sp_select_tab @tab_name varchar(150), @fields varchar(150), @field varchar(50), @keyword varchar(100), @d_flag int as if(@d_flag=1) exec('select '+ @fields+' from '+ @tab_name+' where ' +@field+'<'''+@keyword+ ''' order by id asc') else exec('select '+ @fields+' from '+ @tab_name+' where '+ @field+'<'''+@keyword +''' order by id desc') GO
忘了补充 如果要安装时间类型做比较,而不是字符类型,应该这样改 CREATE PROCEDURE sp_select_tab @tab_name varchar(150), @fields varchar(150), @field varchar(50), @keyword varchar(100), @d_flag int as if(@d_flag=1) exec('select '+ @fields+' from '+ @tab_name+' where cast(' +@field+' as datetime)<'''+@keyword+ ''' order by id asc') else exec('select '+ @fields+' from '+ @tab_name+' where cast('+ @field+' as datetime)<'''+@keyword +''' order by id desc') GO
to pbsql(风云): 强! 问题解决了, 将 @keyword='2004-8-29' 改为@keyword='"2004-8-29"'就OK了。 谢谢了。 结帖了。
CREATE PROCEDURE sp_select_tab
@tab_name varchar(150),
@fields varchar(150),
@field varchar(50),
@keyword varchar(100),
@d_flag int
as
if(@d_flag=1)
exec('select '+ @fields+' from '+ @tab_name+' where ' +@field+'<'''+@keyword+ ''' order by id asc')
else
exec('select '+ @fields+' from '+ @tab_name+' where '+ @field+'<'''+@keyword +''' order by id desc')
GO
如果要安装时间类型做比较,而不是字符类型,应该这样改
CREATE PROCEDURE sp_select_tab
@tab_name varchar(150),
@fields varchar(150),
@field varchar(50),
@keyword varchar(100),
@d_flag int
as
if(@d_flag=1)
exec('select '+ @fields+' from '+ @tab_name+' where cast(' +@field+' as datetime)<'''+@keyword+ ''' order by id asc')
else
exec('select '+ @fields+' from '+ @tab_name+' where cast('+ @field+' as datetime)<'''+@keyword +''' order by id desc')
GO
强!
问题解决了,
将 @keyword='2004-8-29'
改为@keyword='"2004-8-29"'就OK了。
谢谢了。
结帖了。
http://community.csdn.net/Expert/topic/3316/3316083.xml?temp=.2183496
入来UP一下,连这边也结了。