如何在 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”的主要内容,如果未能解决你的问题,请参考以下文章