我试图在动态查询中创建一个动态的sql query.But,我无法理解如何使用复杂的函数。我尝试了许多组合,但直到eror.it在列中给出了eror,其中包括RTIM、LTRIM、function.code和错误,如下所示。
declare @karorani decimal set @karorani=0
declare @toplamkar decimal set @toplamkar=0
declare @toplamciro decimal set @toplamciro=0
declare @odemetipi nvarchar(12) set @odemetipi='Hepsi'
declare @columns nvarchar(100) set @table='new_flightreservation'
declare @sqlcommand nvarchar(max) set @columns='new_salesorderid'
declare @table nvarchar(100)
set @sqlcommand='select ' + @columns + ' from ' + @table +' M ' + 'LEFT JOIN '+
'new_new_paymnet_'+@table +' F '+ ' on ' + ' M.'+@table+'Id'+'=F.'+@table+'Id' +
' left join new_payment P '+'on '+ 'F.new_paymentid=P.new_paymentId where
'(LTIM(RTRIM((left (P.new_name,(CHARINDEX('-',P.new_name)-1))))=@odemetipi //error
or @odemetipi+=Hepsi)'
execute (@sqlcommand)
error: Operand data type nvarchar is invalid for subtract operator.
发布于 2014-06-25 09:28:46
这段代码有很多问题
试一试
declare @karorani decimal set @karorani=0
declare @toplamkar decimal set @toplamkar=0
declare @toplamciro decimal set @toplamciro=0
declare @odemetipi nvarchar(12) set @odemetipi='Hepsi'
declare @table sysname set @table='new_flightreservation'
declare @columns nvarchar(100) set @columns='new_salesorderid'
declare @sqlcommand nvarchar(max)
set @sqlcommand='
select ' + @columns + '
from ' + @table +' M ' + '
left join new_new_paymnet_' + @table +' F
on M.' + @table + 'Id=F.' + @table + 'Id
left join new_payment P
on F.new_paymentid=P.new_paymentId
where (ltim(rtrim((left(P.new_name,(charindex(''-'',P.new_name)-1))))=''' + @odemetipi + '''
or ''' + @odemetipi + '''=''Hepsi'')'
print @sqlcommand
-- exec(@sqlcommand)
https://stackoverflow.com/questions/24404155
复制相似问题