选择带有ISNULL的引号

时间:2017-10-06 08:01:52

标签: sql sybase sybase-ase isnull

我正在尝试在sybase中构建一个动态查询,如:

SELECT @v_query = @v_query + " tech= "+ ISNULL(''''+@stat+'''',"tech")

当我将@stat作为NULL传递时,我得到''作为输出,但预期输出是技术错误

如果我将@stat作为NACK传递,则应该返回' NACK'按预期工作

感谢您提供有关如何实现此目的的任何建议

2 个答案:

答案 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