sql 使用 if 逻辑查询
sql query with if logic
我 table 其中一列(信息)包含以下类型的信息,我想 运行 查询检查所有记录,如果它找到“"matched data"" 值然后删除数据。
Current value
"{""value"":{""Volume ID"":""12345"",""matched data"":""eJzBFPafhF1xu0JdwH""}}"
Expected value
"{""value"":{""Volume ID"":""12345"",""matched data"":"" ""}}"
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);
如果您的 Json
格式字符串是固定的。你可以使用 CHARINDEX
和 SUBSTRING
和 REPLACE
方法
- 通过
CHARINDEX
方法获取""matched data""
字符串作为起始索引
- 使用
CHARINDEX
得到}}
得到结束索引。
SUBSTRING
获取包含 ""matched data""
键值数据。
REPLACE
为您期望的格式。
最终使用 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
我 table 其中一列(信息)包含以下类型的信息,我想 运行 查询检查所有记录,如果它找到“"matched data"" 值然后删除数据。
Current value
"{""value"":{""Volume ID"":""12345"",""matched data"":""eJzBFPafhF1xu0JdwH""}}"
Expected value
"{""value"":{""Volume ID"":""12345"",""matched data"":"" ""}}"
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);
如果您的 Json
格式字符串是固定的。你可以使用 CHARINDEX
和 SUBSTRING
和 REPLACE
方法
- 通过
CHARINDEX
方法获取""matched data""
字符串作为起始索引 - 使用
CHARINDEX
得到}}
得到结束索引。 SUBSTRING
获取包含""matched data""
键值数据。REPLACE
为您期望的格式。
最终使用 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