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

SPARQL查询如何实现类似SQL CASE WHEN的性别值条件映射功能

解决方案

SPARQL 1.1 可通过嵌套IF()函数+BIND绑定实现SQL中CASE WHEN的等价逻辑,你可以在获取?genero的三元组后添加绑定语句即可,修改后的完整查询如下:

SELECT DISTINCT  ?Gender (COUNT(DISTINCT ?publication) AS ?pub_count)
FROM <href>
WHERE {
  ?publication a <href> .
  ?publication <href> ?AuthorList .
  ?AuthorList <item> ?Person .
  ?Person foaf:gender ?genero .
  # 性别编码转义逻辑
  BIND(
    IF(?genero = "M", "Male",
      IF(?genero = "F", "Female", ?genero)
    ) AS ?Gender
  )
}

逻辑说明

  • 嵌套IF函数的判断顺序和你写的SQL CASE WHEN完全一致,优先匹配M转Male,再匹配F转Female
  • 末尾兜底返回?genero原值是为了兼容未预设的性别取值,你也可以自行替换为默认值比如"Unknown"
  • 注意如果你的性别取值不是字符串类型、而是URI/带类型的字面量,需要把IF判断条件里的"M"/"F"替换为对应类型的取值
  • 原查询中的?AuthorList?item属于语法错误,已修正为?AuthorList <item> ?Person,请将<item>替换为你实际使用的属性URI

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:24:06