我正在尝试在sybase中构建一个动态查询,如:
SELECT @v_query = @v_query + " tech= "+ ISNULL(''''+@stat+'''',"tech")
当我将@stat
作为NULL传递时,我得到''
作为输出,但预期输出是技术错误
如果我将@stat
作为NACK
传递,则应该返回' NACK'按预期工作
感谢您提供有关如何实现此目的的任何建议
答案 0 :(得分:1)
说实话,你可能想要这个:
os.sys.path.append('/usr/local/lib/python2.7/site-packages')
不要将SELECT @v_query = @v_query +
(CASE WHEN @stat IS NULL THEN '1=1'
ELSE 'tech = ''' + @stat + ''''
END)
用作无操作(它不适用于tech = tech
)。相反,只需删除比较。
答案 1 :(得分:0)
删除''并重试
declare @SQL_TXT varchar(100)
declare @stat varchar(100)
begin
select @stat= null
SELECT @SQL_TXT=@SQL_TXT + ' tech =' + ISNULL(@stat,'tech')
print @SQL_TXT
end
print tech =tech
编辑你可以这样做
declare @SQL_TXT varchar(100)
declare @stat varchar(100)
begin
select @stat= null
SELECT @SQL_TXT=@SQL_TXT + ' tech = ''' + ISNULL(@stat,'tech') +''''
print @SQL_TXT
end
似乎在null函数中添加引号会给出null值,你可以在变量中添加引号作为替代吗?
declare @SQL_TXT varchar(100)
declare @stat varchar(100)
begin
select @stat= 'SAMPLE'
select @stat= ''''+@stat+''''
SELECT @SQL_TXT=@SQL_TXT + ' tech = ' + ISNULL(@stat,'tech')
print @SQL_TXT
end