如何从商店程序中获取表结果?

时间:2018-06-05 10:53:59

标签: c# sql sql-server tsql

我试图在Where语法中使用一些条件检查来编写存储过程。

但它只显示查询的状态而不是结果。

任何机构都可以帮助解决此问题。

请查询

declare @query varchar(200)
declare @option varchar(10) = 'A'
set @query ='select * from TableName'+
(case when @query = ''
then
'where ColumnName = 1 '
end)
execute sp_sqlexec @query

4 个答案:

答案 0 :(得分:2)

您的查询应该是

declare @query varchar(200)
declare @option varchar(10) ='A'
declare @search as int=1 

select @query ='select * from TableName '+
case when @option ='A'
then
' where ColumnName = '+ cast(@search as varchar(200))
else ''
end
execute sp_sqlexec @query

see demo

答案 1 :(得分:0)

我可以肯定的是,在有条件之前缺乏空间。

declare @query varchar(200)
declare @option varchar(10) = 'A'
set @query ='select * from TableName'+
(case when @query = ''
then
' where ColumnName = 1 '
end)

答案 2 :(得分:0)

您可以尝试这样:

declare @query varchar(200)

declare @option varchar(10) = 'A'

set @query ='select * from TableName '

if @option ='A'
   set @query = @query + ' where ColumnName = 1 '

--print @query

execute sp_sqlexec @query

答案 3 :(得分:0)

declare     @query  nvarchar(max)
        ,   @option varchar(10)     = 'A';

set @query = N'select * from TableName '
           + CASE WHEN @option IS NOT NULL
                THEN N' where ColumnName = 1 ' ELSE N'' END

execute sp_executesql @query;

避免使用sp_sqlexec它已经很老了,不再受支持了,请改用sp_executesql。