首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL 语句,帮忙看一下~解决办法

2012-01-23 
SQL 语句,帮忙看一下~!~!~!~!~!~!~!~!~!DECLARE@iFeeTypeNVARCHAR(100)DECLARE@sqlWhereNVARCHAR(100)SET@

SQL 语句,帮忙看一下~!~!~!~!~!~!~!~!~!
DECLARE   @iFeeType   NVARCHAR(100)
DECLARE   @sqlWhere   NVARCHAR(100)
SET   @sqlWhere   =   'AND   2=2 '

SET   @iFeeType   =   (SELECT   SUM(iMoney)   FROM   tSrvDetail   WHERE   1=1)
PRINT   @iFeeType


这样是正确的,但是我现在想把   @sqlWhere   条件也加在后面
SET   @iFeeType   =   (SELECT   SUM(iMoney)   FROM   tSrvDetail   WHERE   1=1   +   @sqlWhere)
请如如何加啊,我要将条件输出的输给   @iFeeType   变量

[解决办法]
exec
[解决办法]
DECLARE @iFeeType NVARCHAR(100)
DECLARE @sqlWhere NVARCHAR(100)
SET @sqlWhere = 'AND 2=2 '

exec( 'SELECT '+@iFeeType+ 'SUM(iMoney) FROM tSrvDetail WHERE 1=1 '+@sqlWhere)
PRINT @iFeeType

--是这个意思么?
[解决办法]
DECLARE @iFeeType NVARCHAR(100)
DECLARE @sqlWhere NVARCHAR(100),
@Esql nvarchar(4000)
SET @sqlWhere = 'AND 2=2 '
SET @Esql= 'SELECT SUM(iMoney) FROM tSrvDetail WHERE 1=1 '+@sqlWhere
execute sp_executesql @Esql,N '@iFeeType NVARCHAR(100) out ',@iFeeType out
PRINT @iFeeType

[解决办法]
楼上正解,
SELECT SUM(iMoney) FROM tSrvDetail WHERE 1=1
是没有参数的,所以能够直接执行
SET @iFeeType = (SELECT SUM(iMoney) FROM tSrvDetail WHERE 1=1 + @sqlWhere)
其中这句 (SELECT SUM(iMoney) FROM tSrvDetail WHERE 1=1 + @sqlWhere)
也带有参数了.
这时就是动态语句了,必须用execute 来执行.
execute有两种执行方式.

热点排行