TSQL String modify

前端 未结 3 1401
陌清茗
陌清茗 2020-12-07 06:17

I have a problem with string. I have a variable @Rights which looks like \'ASD,ZXC,QWE,IOP,JKL\' What I need to do is use this string in

SELECT * FROM dbo.Ex         


        
3条回答
  •  Happy的楠姐
    2020-12-07 06:55

    You can use Dynamic SQL:

    LiveDemo

    -- sample data
    CREATE TABLE #Example(ID INT IDENTITY(1,1), Rights VARCHAR(100));
    INSERT INTO #Example VALUES ('ASD'), ('ABC'), ('IOP');
    
    
    DECLARE @Rights NVARCHAR(MAX) = 'ASD,ZXC,QWE,IOP,JKL';
    DECLARE @sql NVARCHAR(MAX) = 
      N'SELECT * 
       FROM #Example
       WHERE Rights IN ('''')';
    
    SET @sql = REPLACE(@sql, '', REPLACE(@Rights, ',', ''','''));
    
    -- SELECT @sql; -- for debug
    
    EXEC dbo.sp_executesql
        @sql;
    

    But you should reconsider using Table Valued Parameter instead.

提交回复
热议问题