-3
dbo.UDF_CONVERSION (7.68,1,null,null,25,5)    

式があります

(7.68/1000.00)/1.0026 

答えを次のように返します0.007680000

DECLARE @A nVARCHAR(1000),@i float
SELECT @A= dbo.UDF_CONVERSION (7.68,1,null,null,25,5)
SELECT @A='SELECT '+@A
exec @i=sp_executesql @A
select @i

上記を実行すると、取得した値は、さらに処理するためにその値を使用できるようにし0
たいものです。0.007680000

4

2 に答える 2

1

簡単に試してください:

DECLARE @i float --If your function returns float...
SELECT @i = dbo.UDF_CONVERSION (7.68,1,null,null,25,5)  

--DEBUG (remove PRINT comment)
--PRINT @i

sp_executesql内の値をCONVERTする必要がある場合

DECLARE @A nVARCHAR(1000),@i float
DECLARE @ParmDefinition nvarchar(500);

SET @A=  dbo.UDF_CONVERSION (7.68,1,null,null,25,5)  
SET @A = N'SELECT @retvalOUT = CONVERT(float, '''+ @A +''')'
SET @ParmDefinition = N'@retvalOUT float OUTPUT';

EXEC sp_executesql @A, @ParmDefinition, @retvalOUT = @i OUTPUT;

SELECT  @i
于 2012-12-08T09:55:25.560 に答える
0

これを書くのは気分が悪いですが、一時的なテーブルであなたが望むことを達成することができます。

DECLARE @A nVARCHAR(1000),@i float, @retVal int
--drop table #tblReturnedVal
create table #tblReturnedVal (val float)
SELECT @A= dbo.UDF_CONVERSION (7.68,1,null,null,25,5)
SELECT @A='insert into #tblReturnedVal SELECT '+@A
exec @retVal = sp_executesql @A
select top 1 @i = val from #tblReturnedVal
select @i
select @retVal -- 0 = sp_executesql ran successfully, 
                -- otherwise something went wrong

編集:@Mateが提案した方法で間違いなくそれを行う必要があります

于 2012-12-08T10:03:47.267 に答える