我正试图将这个查询转换为jOOQ,但遇到了用于将值连接到数组的“”。
sql prettyprint-override">with recursive nodes(node_key, parent_ids, parent_path) as (
select node_key, array[node_key] as parent_ids, array[name::text] as parent_path
from node
where parent_node_key is null
union all
select c.node_key, parent_ids || c.node_key, parent_path || c.name::text
from node c
join nodes n on n.node_key = c.parent_node_key
)
select * from nodes order by parent_path;
dsl.withRecursive( name( "nodes" )
.fields( "node_key",
"parent_ids",
"parent_path" ).as(
select(
NODE.NODE_KEY,
array( NODE.NODE_KEY).as( "parent_ids" ),
array( NODE.NAME).as( "parent_path" )
)
.from( NODE)
.where( NODE.PARENT_NODE_KEY.isNull() )
.unionAll(
select( NODE.NODE_KEY,
field( "parent_ids" ))
) )
) );
如何将值连接到数组?
使用arrayCat函数而不是运算符。
https://www.jooq.org/javadoc/latest/org.jooq/org/jooq/util/postgres/postgressl.html#arraycat(t%5b%5d,org.jooq.field)
问题内容: 我不知道MySQL的串联运算符。 我已尝试将此代码进行串联: 但这没有用。我应该使用哪个运算符来连接字符串? 问题答案: 您正在使用ORACLE类型的串联。MySQL的应该是 调用该函数,并用逗号分隔您的值。
我的问题是, 如何正确创建select语句? 如何最好地添加空格分隔符? 是否有更好的替代JOOQ(when=case)条件子句?
问题内容: 对于字符串连接,我们可以使用or或concat运算符。 我尝试了以下性能测试,发现更快,更有效地进行字符串连接。 字符串连接比较100,000次 : 结果 如果比运算符快,那么什么时候应该使用串联运算符? 问题答案: concat方法始终会生成一个带有串联结果的新String。 plus运算符由StringBuilder创建来支持,它会附加所需的所有String值,并进一步对toStr
问题内容: 假设字符串a和b: 在幕后,他们是同一回事吗? 这里将concat反编译为参考。我也希望能够反编译该+运算符,以查看其作用。 问题答案: 不,不是。 首先,语义上略有不同。如果a是null,则抛出一个,但a+=b将把原来的值a就好像它是null。此外,该方法仅接受值,而+操作员会将参数无提示地转换为String(使用对象的方法)。因此,该concat()方法在接受方面更加严格。 要深入
本文向大家介绍通过+(字符串串联)运算符进行字符串串联。,包括了通过+(字符串串联)运算符进行字符串串联。的使用技巧和注意事项,需要的朋友参考一下 您可以使用Java的“ +”运算符来连接字符串。 示例 输出结果