【发布时间】:2016-05-17 15:57:29
【问题描述】:
我正在将一个 JSON 字符串接收到数据库中,我正在尝试将其转换为逗号分隔的列表。这是我目前的状态:
我的 SQL 目前看起来像:
BEGIN TRANSACTION
SELECT Id,
PriorityGroups ,
REPLACE(
REPLACE(
REPLACE(PriorityGroups, '["', ''),
'"]', ''),
'"."', ', ') AS 'Updated to comma delimited'
FROM dbo.CA
WHERE Id= 51
ROLLBACK TRANSACTION
无论出于何种原因,当我尝试替换时
“。”
使用逗号和空格,它不会对输出进行任何更改。我试过转义双引号,但有人告诉我这是无效的语法,我不太确定还能尝试什么!
【问题讨论】:
-
在输入字符串中,这似乎是
","-- 即 双引号、逗号、双引号,但您的替换搜索字符串是"."双引号、句号、双引号。但是这个字符串是如何进入你的数据库的呢?似乎在应用程序代码中进行这种转换会更容易(也许还可以将列表规范化到另一个表中) -
@MichaelBerkowski 啊哈,是的,现在我看到它是如此明显 - 谢谢。它是从存储过程中输入的,所以我正在编写这段代码,然后在 sp 级别应用,所以本质上它是在应用程序级别调用的。在 Web 应用程序中解决它是没有意义的,因为它必须在其中许多中完成(因此它们都称为单个 sp)。感谢您的帮助!
标签: sql tsql replace sql-server-2012