You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SPARQL中实现多值替换?

多值代码映射的SPARQL实现方案

你当前的查询仅能通过REPLACE实现单一值替换,要批量处理多个ENV_XXX代码到真实名称的映射,可采用以下两种实用方案:

方案一:嵌套REPLACE函数

适合映射关系较少的场景,通过多层嵌套REPLACE依次处理每个代码映射:

SELECT ?code_type ?TYPE_JEU
{
  GRAPH xxx:optimized {
    OPTIONAL { ?o xxx:code_type ?code_type }
    FILTER (?code_type IN (
      "ENV_BAL"^^xsd:string, "ENV_BBF"^^xsd:string, "ENV_CAB"^^xsd:string, 
      "ENV_JRG"^^xsd:string, "ENV_STO"^^xsd:string, "ENV_TJE"^^xsd:string, 
      "ENV_TOB"^^xsd:string, "ENV_TPP"^^xsd:string
    ))
  }
  # 依次添加每个代码的映射规则
  BIND (
    REPLACE(
      REPLACE(
        REPLACE(?code_type, "ENV_TOB", "Slide"),
        "ENV_BAL", "Ball" # 替换为对应真实名称
      ),
      "ENV_BBF", "Box" # 替换为对应真实名称
      # 可继续嵌套REPLACE添加更多映射
    ) AS ?TYPE_JEU
  )
}

方案二:使用VALUES构建映射表

适合映射关系较多的场景,通过VALUES定义完整的代码-名称映射表,结构更清晰易维护:

SELECT ?code_type ?TYPE_JEU
{
  GRAPH xxx:optimized {
    OPTIONAL { ?o xxx:code_type ?code_type }
    FILTER (?code_type IN (
      "ENV_BAL"^^xsd:string, "ENV_BBF"^^xsd:string, "ENV_CAB"^^xsd:string, 
      "ENV_JRG"^^xsd:string, "ENV_STO"^^xsd:string, "ENV_TJE"^^xsd:string, 
      "ENV_TOB"^^xsd:string, "ENV_TPP"^^xsd:string
    ))
  }
  # 定义代码与真实名称的映射表
  VALUES (?code ?name) {
    ("ENV_TOB"^^xsd:string "Slide")
    ("ENV_BAL"^^xsd:string "Ball")
    ("ENV_BBF"^^xsd:string "Box")
    ("ENV_CAB"^^xsd:string "Cabinet")
    ("ENV_JRG"^^xsd:string "Jar")
    ("ENV_STO"^^xsd:string "Storage")
    ("ENV_TJE"^^xsd:string "Tray")
    ("ENV_TPP"^^xsd:string "Tupperware")
  }
  # 匹配代码并绑定真实名称,未匹配项保留原代码
  BIND(COALESCE(?name, ?code_type) AS ?TYPE_JEU)
}

内容的提问来源于stack exchange,提问作者SDA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 07:45:38