我有一个表,其中的column(info)之一包含以下类型的信息,我想运行一个查询,检查所有记录,如果它找到“匹配的数据”值,然后删除该数据。
Current value
"{""value"":{""Volume ID"":""12345"",""matched data"":""eJzBFPafhF1xu0JdwH""}}"
Expected value
"{""value"":{""Volume ID"":""12345"",""matched data"":"" ""}}"
答案 0 :(得分:1)
如果您的Json
格式字符串是固定的。您可以将CHARINDEX
与SUBSTRING
一起使用
和REPLACE
方法
""matched data""
方法将CHARINDEX
字符串作为起始索引CHARINDEX
来获取}}
来作为结束索引。SUBSTRING
包含""matched data""
键值数据。REPLACE
为您期望的格式。最终使用替换获得预期的结果
TestDLL
CREATE TABLE T(
Col1 VARCHAR(1000)
);
INSERT INTO T VALUES ('"{""value"":{""Volume ID"":""12345"",""matched data"":""eJzBFPafhF1xu0JdwH""}}"');
INSERT INTO T VALUES ('"{""value"":{""Volume ID"":""12345"",""matched data"":""test1213""}}"');
查询
SELECT REPLACE(Col1,SUBSTRING(Col1,CHARINDEX('""matched data"":', Col1) ,CHARINDEX('}}', Col1) - CHARINDEX('""matched data"":', Col1)),'""matched data"":"" ""')
FROM T
答案 1 :(得分:0)
idk您到底需要什么,但是如果您想找到sql中if语句的解决方案,您的方法就是用例。
示例:
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
关于完整查询的示例:
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);