Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
String SQL Server 2005:将两个或多个字符串转换为一个字符串并作为参数传递_String_Sql Server 2005_Sqlcommand - Fatal编程技术网

String SQL Server 2005:将两个或多个字符串转换为一个字符串并作为参数传递

String SQL Server 2005:将两个或多个字符串转换为一个字符串并作为参数传递,string,sql-server-2005,sqlcommand,String,Sql Server 2005,Sqlcommand,可能重复: 大家好 我正在为我的项目编写一个SQL命令。我必须向游标传递一个字符串参数。 但在该参数处,我必须连接许多字符串,如下所示: DECLARE @strParam VARCHAR(MAX) SET @strParam = 'string1' + ',' + 'string2' + ',' ... etc SELECT * FROM tblResult WHERE Field1 IN (@strParam) 然后我想这样使用: DECLARE @strPar

可能重复:

大家好

我正在为我的项目编写一个SQL命令。我必须向游标传递一个字符串参数。 但在该参数处,我必须连接许多字符串,如下所示:

   DECLARE @strParam VARCHAR(MAX)
   SET @strParam = 'string1' + ',' + 'string2' + ',' ... etc
   SELECT * FROM tblResult WHERE Field1 IN (@strParam)
然后我想这样使用:

   DECLARE @strParam VARCHAR(MAX)
   SET @strParam = 'string1' + ',' + 'string2' + ',' ... etc
   SELECT * FROM tblResult WHERE Field1 IN (@strParam)
而不是下面的陈述:

   SELECT * FROM tblResult WHERE Field1 IN ('string1' + ',' + 'string2' + ',' ... etc)
所以我需要得到我们上面设置的格式。 我该怎么做

致以最良好的祝愿,
红色

这将csv拆分为一个表

CREATE FUNCTION GetIDs(
    @ids_csv        nvarchar(255))
    RETURNS @table_ids TABLE 
    (
        ID INT,
        PRIMARY KEY(ID)
    ) AS
BEGIN
    DECLARE @app_id varchar(10)
    DECLARE @pos int
    SET @ids_csv = LTRIM(RTRIM(@ids_csv))+ ','
    SET @pos = CHARINDEX(',', @ids_csv, 1)
    IF REPLACE(@ids_csv, ',', '') <> ''
    BEGIN
        WHILE @pos > 0
        BEGIN
            SET @app_id = LTRIM(RTRIM(LEFT(@ids_csv, @pos - 1)))
            INSERT INTO @table_ids(ID) VALUES(@app_id)
            SET @ids_csv = RIGHT(@ids_csv, LEN(@ids_csv) - @pos)
            SET @pos = CHARINDEX(',', @ids_csv, 1)
        END
    END
    RETURN
END

您已有的代码有什么问题?请进一步澄清您的问题。我想做的是在该语句中使用@strParam:从tblResult中选择*其中Field1位于(@strParam),但如果我们这样运行@strParam不是此格式('string1','string2'),对吗?所以SELECT语句不会得到所需的结果。我意识到上面的语句拆分的是整数,而不是字符串。请注意区别。