0

動的 SQL クエリを作成しようとしています - パラメータに列名を渡そうとしています。私が直面している問題はConvert、文字列パラメーターで SQL 関数を渡そうとすると、SQL Server で構文エラーが発生することです。関数がなければ、クエリは完全に正常に実行されます。エラーは次のとおりです。

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.

ドット「.」はありません。クエリで確認できます。しかし、はい、引数として渡される数値Convertは浮動小数点値です。誰かが私が間違っていることを教えてもらえますか?

どうもありがとう。

declare

@orderBy nvarchar(200),
@sortOrder nvarchar(40), 
@fieldlist nvarchar(max),
@STMT nvarchar(max)

set @orderBy = 'Symbol'
set @sortOrder = 'Asc'
SET @fieldlist = 'Symbol, [Net Qty], [Total BUY], [Avg. BUY RATE], [Trans. Amount], [MTM Price], [MTM Amount], [Total SELL], [Avg. SELL RATE], [PENDING BUY], [PENDING SELL],  Convert(numeric(10,2),[SETTLED P/L]) as [SETTLED P/L],
 Convert(numeric(10,2),[UNSETTLED P/L]) as [UNSETTLED P/L] '


SET @STMT =  'SELECT  ' + @fieldlist + 
                  'FROM    (
                            SELECT  ROW_NUMBER() OVER(ORDER BY ' + @orderBy + ' '+@sortOrder+' '+') AS row, *
                            FROM    ' + '[Cats(Main)].[dbo].SESSION_HOLDING' + '
                            WHERE   ' + 'AccountNo = '''+'00'+'''' + '
                          ) AS tbl
WHERE
                          row > ' + CONVERT(varchar(9), @lbound) + ' AND
                          row < ' + CONVERT(varchar(9), @ubound)'


EXEC (@STMT)   
4

0 に答える 0