返回首页

大家好,

我除了在存储过程无效的对象"转换(VARCHAR @ array_valueID)"


ALTER PROCEDURE [dbo].[spGetQFSearchRecord] 

	@DatasetID VARCHAR(MAX),

	@Tags VARCHAR(MAX)

AS

IF(@DatasetID<>'')

IF(@Tags<>'') 

BEGIN

	

	CREATE TABLE #temp (DatasetID INT)

	

	DECLARE @separator CHAR(1)  

      SET @separator=','  

      DECLARE @ArrayID VARCHAR(MAX)  

      DECLARE @Array VARCHAR(MAX)

      SET @ArrayID =@DatasetID    --array for datasetID

      SET @Array=@Tags			--array for Tags

DECLARE @separator_position INT -- This is used to locate each separator character  

        DECLARE @array_value VARCHAR(1000) -- this holds each array value as it is returned  

		DECLARE @array_valueID VARCHAR(1000) 

		

        SET @array = @array + @separator  

        SET @arrayID=@arrayID+@separator

        --SELECT  @array_valueID = LEFT(@ArrayID, @separator_position - 1)

        WHILE PATINDEX('%' + @separator + '%', @arrayID)<>0

        BEGIN

        	SELECT  @separator_position = PATINDEX('%' + @separator + '%',@arrayID)  

			SELECT  @array_valueID = LEFT(@arrayID, @separator_position - 1)

			WHILE PATINDEX('%' + @separator + '%', @array) <> 0   

            BEGIN  

                  

                SELECT  @separator_position = PATINDEX('%' + @separator + '%',@array)  

                SELECT  @array_value = LEFT(@array, @separator_position - 1)

   INSERT INTO #temp(DatasetID)

  SELECT VisitorID FROM "CONVERT(varchar,@array_valueID)" WHERE DESCRIPTION LIKE '%'+ CONVERT(varchar,@array_value) +'%'

                

            END

        END   

END

GO

 


请帮助我。

我的第一个参数是可变数目的ID即表名
datasetID和第二个参数是标记的意思是搜索,这是逗号分隔的文本

例如 -
DatasetID - "12,45,25,65,45,21"
标签 - "印度,普纳,英国"

回答

评论会员: 时间:2