Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 2008_Tsql - Fatal编程技术网

Sql 无法获取参数中的变量值

Sql 无法获取参数中的变量值,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我没有在select语句参数中获取变量rsp2的值 DECLARE @RSP varchar(50) DECLARE @RSP2 varchar(50) SET @RSP = '(<DL>,<DM>)' SELECT @RSP SET @RSP2 = REPLACE(REPLACE(REPLACE(REPLACE(@RSP,'(',''),')',''),'<',''''),'>','''') SELECT @RSP2 SELECT

我没有在select语句参数中获取变量rsp2的值

 DECLARE @RSP  varchar(50)
  DECLARE @RSP2 varchar(50)
 SET @RSP =  '(<DL>,<DM>)'
SELECT @RSP  
 SET @RSP2 = REPLACE(REPLACE(REPLACE(REPLACE(@RSP,'(',''),')',''),'<',''''),'>','''')
SELECT @RSP2 
    SELECT [F_YEAR] FROM tbl1 WHERE 
                 RSP  IN (@RSP2)
我假设您希望获得f_year的值,以分配给@rsp变量

DECLARE @RSP  varchar(50)
      , @RSP2 varchar(50);

 SET @RSP = '(<DL>,<DM>)';
 SET @RSP2 = REPLACE(REPLACE(REPLACE(REPLACE(@RSP,'(',''),')',''),'<',''''),'>','''');

SET @RSP = (
  SELECT Max(f_year)
  FROM   tbl1
  WHERE  RSP  = @RSP2;
);

SELECT @RSP  As rsp
     , @RSP2 As rsp2;
我假设您希望获得f_year的值,以分配给@rsp变量

DECLARE @RSP  varchar(50)
      , @RSP2 varchar(50);

 SET @RSP = '(<DL>,<DM>)';
 SET @RSP2 = REPLACE(REPLACE(REPLACE(REPLACE(@RSP,'(',''),')',''),'<',''''),'>','''');

SET @RSP = (
  SELECT Max(f_year)
  FROM   tbl1
  WHERE  RSP  = @RSP2;
);

SELECT @RSP  As rsp
     , @RSP2 As rsp2;
试试这个

DECLARE @RSP  varchar(50)
DECLARE @RSP2 varchar(50)
SET @RSP =  '(<DL>,<DM>)'
SELECT @RSP  
SET @RSP2 = REPLACE(REPLACE(REPLACE(REPLACE(@RSP,'(',''),')',''),'<',''''),'>','''')
SELECT @RSP2 
EXEC('SELECT [F_YEAR] FROM tbl1 WHERE 
             RSP  IN ('+@RSP2+')')
希望这对你有帮助

谢谢,试试这个

DECLARE @RSP  varchar(50)
DECLARE @RSP2 varchar(50)
SET @RSP =  '(<DL>,<DM>)'
SELECT @RSP  
SET @RSP2 = REPLACE(REPLACE(REPLACE(REPLACE(@RSP,'(',''),')',''),'<',''''),'>','''')
SELECT @RSP2 
EXEC('SELECT [F_YEAR] FROM tbl1 WHERE 
             RSP  IN ('+@RSP2+')')
希望这对你有帮助


谢谢

你想达到什么目标?对不起,从你的问题我不清楚你为什么这么想?我执行了相同的查询,直到Select@RSP2我得到了结果“DL”,“DM”,我想他是说当他执行最后的SQL语句时,没有返回结果。这是SQL中的一个常见错误,但我一直不明白为什么。您没有看到一个恰好包含逗号的字符串在逻辑上与几个由逗号分隔的字符串不同吗?您试图实现什么?对不起,从你的问题我不清楚你为什么这么想?我执行了相同的查询,直到Select@RSP2我得到了结果“DL”,“DM”,我想他是说当他执行最后的SQL语句时,没有返回结果。这是SQL中的一个常见错误,但我一直不明白为什么。您没有看到一个恰好包含逗号的字符串在逻辑上不同于几个由逗号分隔的字符串吗?