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之新增内置高级函数详解(二)