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