Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql存储过程单引号_Sql_Sql Server - Fatal编程技术网

sql存储过程单引号

sql存储过程单引号,sql,sql-server,Sql,Sql Server,我有一个存储过程,如下所示 create procedure TestTry BEGIN declare @query varchar(max) SET NOCOUNT ON; set @query = 'select * from table1 when RECORD_FLAG <> 't' then Convert(Decimal(10,4),ISNULL(T.HISTORY_PCR ,0)) else '0''; exec (@query) end 创建过程T

我有一个存储过程,如下所示

create procedure TestTry

BEGIN
declare @query varchar(max)
SET NOCOUNT ON;   

set @query = 'select * from table1 when RECORD_FLAG <> 't' 
then Convert(Decimal(10,4),ISNULL(T.HISTORY_PCR ,0))  else '0'';

exec (@query)
end
创建过程TestTry
开始
声明@query varchar(最大值)
不计数;
当记录标志“t”时,设置@query='从表1中选择*
然后转换(十进制(10,4),ISNULL(T.HISTORY_-PCR,0)),否则为“0”;
exec(@query)
结束
在RECORD_标志之后,我想用单引号表示,也用单引号表示0,如何表示

上面显示的是一个实时示例我的查询很大,我必须在@query only中给出查询

使用“”(双精度)表示“”(单精度)

set@query='select*在记录标志“t”时从表1中选择*
然后转换(十进制(10,4),ISNULL(T.HISTORY_-PCR,0)),否则为“0”;
使用“”(双精度)表示“(单精度)

set@query='select*在记录标志“t”时从表1中选择*
然后转换(十进制(10,4),ISNULL(T.HISTORY_-PCR,0)),否则为“0”;
创建过程TestTry
作为--
创建过程TestTry
作为--
set @query = 'select * from table1 when RECORD_FLAG <> ''t'' 
then Convert(Decimal(10,4),ISNULL(T.HISTORY_PCR ,0))  else ''0''';
create procedure TestTry
AS       --<-- you'er also missing AS key word here
BEGIN
  SET NOCOUNT ON;
 declare @query varchar(max)


 set @query = 'select * from table1 when RECORD_FLAG <> ''t'' 
              then Convert(Decimal(10,4),ISNULL(T.HISTORY_PCR ,0))  else ''0''';

   EXECUTE sp_executesql @query      --<-- use this syntax to execute dynamic sql 
end
select * 
from table1 
when RECORD_FLAG <> 't'   --<-- cant use WHEN without the CASE statement also you
                             --cannot use a Case statement here right after your table name