如何在 SQL Server 存储过程中将“101,102,103”转为“101”、“102”、“103”

Posted

技术标签:

【中文标题】如何在 SQL Server 存储过程中将“101,102,103”转为“101”、“102”、“103”【英文标题】:How to do '101,102,103' to '101','102','103' in SQL Server stored procedure 【发布时间】:2016-07-29 11:31:28 【问题描述】:

在存储过程中的字符串中,我存储一些数据,就像

string pkid = '101,102,103'

我想把它转换成

pkid = '101', '102', '103'

我该怎么做?

【问题讨论】:

将字符串复制到excel,使用数据文本到列,然后转置,然后创建所需的输出并将粘贴复制回sp。 这不是 SQL 问题(两行代码都不是有效的 SQL)。请正确标记。 【参考方案1】:

以下代码会将所有逗号替换为 ',' 并在开头和结尾添加一个 '。

declare @pkid varchar(100);
set @pkid = '101,102,103';
set @pkid = ''''+replace (@pkid,',',''',''')+'''';
select @pkid as pkid

输出

pkid
'101','102','103'

【讨论】:

请编辑更多信息。不建议使用纯代码和“试试这个”的答案,因为它们不包含可搜索的内容,也没有解释为什么有人应该“试试这个”。

以上是关于如何在 SQL Server 存储过程中将“101,102,103”转为“101”、“102”、“103”的主要内容,如果未能解决你的问题,请参考以下文章

在 Sql Server 中将 xml 文档作为存储过程的参数传递是不是安全?

如何在 sql server 2008r2 中将行名更改为列名

如何在 sql server 2008 中将日期与 GETDATE() 进行比较

如何从 SQL Server 2014 中的 Select 查询中将数据分配给用户定义的表类型

如何在 SQL Server 数据库中将 Azure 存储用于 elmah 日志而不是 elmah 日志

VBScript - 在 SQL Server 中将 SHA1 存储为数字或二进制值