首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL Server -替换单引号并使用IN

SQL Server -替换单引号并使用IN
EN

Stack Overflow用户
提问于 2009-10-23 04:07:24
回答 6查看 3.4K关注 0票数 0

我正在将一个逗号分隔的值列表传递给一个存储过程。我需要执行一个查询,看看某个实体的ID是否在逗号分隔的列表中。不幸的是,我想我不明白一些事情。

当我执行以下存储过程时:

代码语言:javascript
复制
exec dbo.myStoredProcedure @myFilter=N'1, 2, 3, 4'

我收到以下错误:

代码语言:javascript
复制
"Conversion failed when converting the varchar value '1, 2, 3, 4' to data type int."

我的存储过程相当基础。它看起来是这样的:

代码语言:javascript
复制
CREATE PROCEDURE [dbo].[myStoredProcedure]
    @myFilter nvarchar(512) = NULL
AS
SET NOCOUNT ON
BEGIN
    -- Remove the quote marks so the filter will work with the "IN" statement
    SELECT @myFilter = REPLACE(@myFilter, '''', '')

    -- Execute the query
    SELECT
        t.ID,
        t.Name      
    FROM
        MyTable t
    WHERE
        t.ID IN (@myFilter)
    ORDER BY
        t.Name
END

如何在SQL语句中使用上述参数?谢谢!

EN

Stack Overflow用户

发布于 2009-10-23 05:57:00

我也有几篇关于这方面的博客文章,有很多有趣的后续评论和对话:

More on splitting lists

Processing list of integers

票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1609657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档