動的 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)