EXEC ('IF ('''+@SecuCategoryDesc+'''=0)
BEGIN
SELECT '+@InnerCode+'=A.XX
FROM TABLE A
WHERE A.AA='''+@StockCode+''' AND CAST(A.BB AS VARCHAR(5)) IN ('+@SecuCategory+')
END ')好像是 @InnerCode 这里的错误,我把这个赋值给去掉就对了,但是我想给这个变量赋值,不知道该怎样解决比较好呢?

解决方案 »

  1.   

    IF @SecuCategoryDesc=0
    BEGIN 
    SELECT @InnerCode=A.XX 
    FROM TABLE A 
    WHERE A.AA=@StockCode AND charindex(CAST(A.BB AS VARCHAR(5)), @SecuCategory)>0
      

  2.   

    IF (@SecuCategoryDesc=0) 
      BEGIN 
      EXEC ('SELECT '+@InnerCode+'=A.XX FROM TABLE A WHERE A.AA='''+@StockCode+''' AND CAST(A.BB AS VARCHAR(5)) IN ('+@SecuCategory+')') 
      END这样?注意IN ('+@SecuCategory+') 这个@SecuCategory里如果有多个值中间要加引号
      

  3.   

    我是想在EXEC里面给变量赋值的,然后EXEC外面使用,不知道有没有好办法呢?
      

  4.   

    IF @SecuCategoryDesc=0
    BEGIN 
    SELECT @InnerCode=A.XX 
    FROM [TABLE] A 
    WHERE A.AA=@StockCode 
    AND charindex(CAST(A.BB AS VARCHAR(5)), @SecuCategory)>0
    end
    没错啊!