Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带if逻辑的sql查询_Sql_Sql Server_Sql Server 2014 - Fatal编程技术网

带if逻辑的sql查询

带if逻辑的sql查询,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,我有一个表,其中一列(info)包含以下类型的信息,我想运行一个查询,检查所有记录,如果找到“匹配数据”值,则删除数据 Current value "{""value"":{""Volume ID"":""12345"",""matched data"":""eJzBFPafhF1xu0JdwH""}}" Expected value "{""value"":{""Volume ID"":""12345"",""matched data"":"" ""}}" idk您到底需要什么,但是如果

我有一个表,其中一列(info)包含以下类型的信息,我想运行一个查询,检查所有记录,如果找到“匹配数据”值,则删除数据

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
子字符串一起使用
和
替换
方法

  • 通过
    CHARINDEX
    方法获取要作为起始索引的
    “匹配数据”
    字符串
  • 使用
    CHARINDEX
    获取
    }
    获取作为结束索引的索引
  • 子字符串
    获取包含
    “匹配数据”
    键值数据
  • 替换为您期望的格式
  • 最终使用替换以获得预期结果

    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
    

    您的数据库管理系统是什么?您的sql在哪里?Microsoft sql server 2014,表名是DataCollections,所以您的colnum数据是
    JSON
    ?是它的JSONvalue@D-Shih这可能吗?谢谢,我是否应该尝试按“匹配数据”的情况从数据收集顺序中选择信息现在不确定如何跳转到下一条语句,使值为null?@gary我有点难以理解您的确切意思。您正在询问值为null时的情况?如果您看到我的当前值和预期值。我需要运行一个查询,该查询应查找“匹配的数据”并删除下一个“匹配数据”之间的所有值:“我想删除这些代码中的所有数据”“非常感谢。我向您致敬,感谢您聪明的方法和快速的理解帮助我解决了问题。