#gStore-weekly | gStore最新版1.2之CONCAT函数使用详解

gStore1.2版本支持了CONCAT函数的调用,CONCAT函数常用于SPARQL查询中,用于将查询到的数据信息连接在一起:

1. CONCAT函数

CONCAT(val_1, val_2,...val_n)
  • 参数

    val_i : string类型的字符串值

2. 函数示例

  • 示例1:将查询到关系为喜欢的数据拼接在一起。

    【注】STR函数返回字符串的词法表示形式,如:STR(<Alice>) = "Alice"

    SELECT (CONCAT(STR(?a), "-喜欢-", STR(?c)) AS ?value)
    WHERE
    {
        ?a <喜欢> ?c .
    }
    
    $ bin/gquery -db demo -q q1.sql
    #--------------------------
    #|       ?value           |
    #--------------------------
    #| "Alice-喜欢-Bob"        |
    #| "Bob-喜欢-Eve"          |
    #| "Eve-喜欢-Carol"        |
    #| "Carol-喜欢-Bob"        |
    #| "Francis-喜欢-Carol"    |
    #--------------------------
    
  • 示例2:过滤查询宾语字面量为Al和ice拼接的数据。

    【注】BIND函数为绑定一个常量值为变量

    SELECT ?a ?b ?c ?key WHERE
    {
        ?a ?b ?c .
        BIND(CONCAT(STR("Al"), STR("ice")) AS ?key)
        FILTER REGEX(STR(?c), ?key)
    }
    
    $ bin/gquery -db demo -q q2.sql
    #----------------------------------------
    #|   ?a   |   ?b    |   ?c    |  ?key   |
    #----------------------------------------
    #| <Dave> | <关注>   | <Alice> | "Alice" |
    #| <Bob>  | <关注>   | <Alice> | "Alice" |
    #----------------------------------------
    
  • 示例3:查询宾语字面量等于主语字符串拼接邮箱后缀@gstore.cn的数据。

    【注】LCASE函数将所有字母转化为小写,如LCASE("Alice") = "alice"

    SELECT ?a ?b ?c WHERE
    {
      ?a ?b ?c .
        FILTER (STR(?c) = CONCAT(LCASE(STR(?a)), "@gstore.cn"))
    }
    
    $ bin/gquery -db demo -q q3.sql
    #----------------------------------------------
    #|    ?a     |   ?b    |          ?c          |
    #----------------------------------------------
    #| <Dav>     | <邮箱>   | "dav@gstore.cn"     |
    #| <Francis> | <邮箱>   | "francis@gstore.cn" |
    #| <Carol>   | <邮箱>   | "carol@gstore.cn"   |
    #| <Eve>     | <邮箱>   | "eve@gstore.cn"     |
    #| <Bob>     | <邮箱>   | "bob@gstore.cn"     |
    #| <Alice>   | <邮箱>   | "alice@gstore.cn"   |
    #----------------------------------------------
    
    **示例数据**
    <Alice> <关注> <Bob> .
    <Alice> <喜欢> <Bob> .
    <Alice> <不喜欢> <Eve> .
    <Bob> <关注> <Alice> .
    <Bob> <喜欢> <Eve> .
    <Carol> <关注> <Bob> .
    <Carol> <喜欢> <Bob> .
    <Carol> <不喜欢> <Francis> .
    <Dave> <关注> <Alice> .
    <Dave> <关注> <Eve> .
    <Dave> <不喜欢> <Francis> .
    <Eve> <喜欢> <Carol> .
    <Francis> <喜欢> <Carol> .
    <Francis> <不喜欢> <Dave> .
    <Francis> <不喜欢> <Eve> .
    <Alice> <邮箱> "alice@gstore.cn".
    <Bob> <邮箱> "bob@gstore.cn".
    <Carol> <邮箱> "carol@gstore.cn".
    <Dav> <邮箱> "dav@gstore.cn".
    <Eve> <邮箱> "eve@gstore.cn".
    <Francis> <邮箱> "francis@gstore.cn".
    
    

截至当前,关于gStore最新版1.2的新功能介绍就结束了,后续我们将持续完善和新增更多的功能,尽请期待!

gStore最新版1.2其他新功能的介绍可点击以下连接查看>>

gStore最新版1.2之新增API接口详解

gStore最新版1.2之空库的构建和批量数据构建

gStore最新版1.2之新增内置高级函数详解(一)

gStore最新版1.2之新增内置高级函数详解(二)

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值