读书人

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

发布时间: 2012-01-23 21:57:28 作者: rapoo

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有两种执行方式.

读书人网 >SQL Server

热点推荐