我开始使用REST API使用Neo4j进行开发.我看到有两个选项可用于执行复杂查询 - Cypher(Neo4j的查询语言)和Gremlin(通用图形查询/遍历语言).
这就是我想知道的 - 有没有任何查询或操作可以通过使用Gremlin完成,而不能用Cypher完成?或相反亦然?
Cypher对我来说似乎比Gremlin要清楚得多,而且一般来说Neo4j中的人似乎都会选择Cypher.但是 - 如果Cypher与Gremlin相比有限 - 我真的很想提前知道.
我打算UPDATE在SQL Server数据库表上运行以下语句:
UPDATE TABLE_A
SET COL_1=B.COL_1
FROM TABLE_A A
INNER JOIN TABLE_B B
ON A.KEY_1=B.KEY_1
WHERE B.COL_2 IS NOT NULL
AND A.COL_1=91216599
Run Code Online (Sandbox Code Playgroud)
错误地,我改为运行以下语句:
UPDATE TABLE_A
SET COL_1=B.COL_1
FROM TABLE_A_COPY A
INNER JOIN TABLE_B B
ON A.KEY_1=B.KEY_1
WHERE B.COL_2 is not NULL
AND A.COL_1=91216599
Run Code Online (Sandbox Code Playgroud)
请注意,在第二个语句(错误的一个)中,FROM子句指定表TABLE_A_COPY而不是TABLE_A.两个表具有完全相同的模式(即,相同的列)和相同的数据(在任何UPDATE执行之前,即).
双方TABLE_A并TABLE_A_COPY拥有约100万条记录和更新影响约500000条记录.第二个语句(错误的语句)运行了几个小时并且在第一个语句(正确的语句)运行40秒并且成功时失败.
显然,这两个语句在语法上都是正确的,但我不确定我究竟要求SQL Server对第一个语句做什么.
我的问题是:
SQL Server在第二个语句中尝试做什么?随着我的错误,我没有从指定记录之间的联动TABLE_A来TABLE_A_COPY,所以被它试图做两者之间的CROSS JOIN,然后更新每个记录TABLE_A一个极大倍?
如果要问的问题不是太宽泛,那么UPDATE在这些语句中有什么是有效的方案,其中FROM/JOIN条款中没有提到正在更新的表.为什么有人这样做?为什么SQL Server甚至会允许这样做?
我确实试图寻找我的问题的答案,但谷歌似乎认为我在问UPDATE …
我最近正在接受Java Developer的职位面试.我接到了一个任务:想一个用Java表示电路(如下图所示)的好方法.
图片为http://oi40.tinypic.com/nnr4wj.jpgg
电路是逻辑门XOR,AND,OR等的组合.每个门有两个输入端口和一个输出端口.每个输出连接到另一个门的输入,该门一直连接到更高的门(如图所示).使系统简单,不允许循环(尽管现实生活中的电路可以使用它们).我被要求考虑使用以下指南在Java中表示此模型的好方法:
我选择将系统设计成一棵树,面试官告诉我这是一个不错的选择.然后我构建这些类:
节点
public class gate_node {
gate_node right_c,left_c;
Oprtator op;
int value;
int right_v,left_v;
public gate_node(gate_node right,gate_node left,Oprtator op){
this.left_c=left;
this.right_c=right;
this.op=op;
right_v=left_v=0;
}
}
Run Code Online (Sandbox Code Playgroud)
树
public class tree {
gate_node head;
tree(gate_node head) {
this.head = head;
}
void go_right() {
head = head.right_c;
}
void go_left() {
head = head.left_c;
}
static int arr[] = { 0, 0, 1, 0 };
static int counter=0;
static int compute(gate_node head) {
if …Run Code Online (Sandbox Code Playgroud) 下面的 tSQL 查询令我困惑:
select 1 as FIELD into #TEMP
drop table #TEMP
select 1 as FIELD into #TEMP
Run Code Online (Sandbox Code Playgroud)
当我从 SQL Server Management Studio 会话窗口运行它时(按F5整个查询,作为一个组),我收到以下错误:
消息 2714,级别 16,状态 1,第 3 行
数据库中已经有一个名为“#TEMP”的对象。
请注意,#TEMP在执行查询之前表不存在。
我认为代码不应该产生任何错误,因为第 2 行正在删除临时表。但是就好像在执行第 3 行时 drop 没有生效。
我的问题:
附注。上面的查询是我的真实世界查询的简化,它显示了相同的症状。
PS2。不管这是否是一种合理的编程实践(正如 Sean 在他的评论中暗示的那样),这种意外行为促使我寻找有关如何解析这些查询的信息,希望这些知识对我将来有所帮助。
当您使用knitr将r-markdown文件呈现为HTML或pdf时,输出文档中的代码块对我来说看起来像是过多的行间距.当我想输出summary()的结果时,这会将通常简洁的输出转换成太长的东西.
这是一个比较:

我看了看,我找不到调整knitr行间距的方法.
当然我可以使用xtable来格式化summary()输出,但它只想输出输出的"表格"部分,而不包括R ^ 2等.
有没有办法调整knitr的行间距,使其更紧凑?