小编Ósc*_*ñiz的帖子

Oracle"(+)"运算符

我正在检查一些旧的SQL语句,以便记录它们并可能增强它们.

DBMS是Oracle

我不明白这样的陈述:

select ...
from a,b
where a.id=b.id(+)
Run Code Online (Sandbox Code Playgroud)

我对(+)操作员感到困惑,并且无法在任何论坛上得到它...(在引号内搜索+也不起作用).

无论如何,我使用了SQLDeveloper的"解释计划",我得到了一个输出说HASH JOIN, RIGHT OUTER,等等.

如果我(+)在查询结束时删除运算符会有什么不同吗?数据库是否必须满足某些条件((+)如有一些索引等)才可以使用?如果你能给我一个简单的理解,或者我能读到的一些好的链接,那将会非常有帮助.

谢谢!

sql oracle join outer-join

145
推荐指数
4
解决办法
21万
查看次数

简化D3js的SVG路径生成的字符串

我正在尝试使用惊人的D3js geo模块优化一点我生成的SVG.

我用作SVG路径d3.geo.pathd属性生成器:

path = d3.geo.path().projection(config.projection); // projection is initialized somewhere else
Run Code Online (Sandbox Code Playgroud)

然后用它来渲染这样的路径:

svg.selectAll(".country")
     .data(countries)
     .enter()
     .insert("path", ".graticule")
     .attr({
         class: "country",
         d: path
     })
Run Code Online (Sandbox Code Playgroud)

我得到的路径字符串就像这样:

M713.601085,459.8780053259876L714.7443994399441,460.08170562468473L715.0310281028103,460.5903728431771L715.0310281028103...
Run Code Online (Sandbox Code Playgroud)

可以看出,有些数字非常长,有很多小数,并且在我当前的分辨率下并没有真正有用,这会堵塞DOM并使调试这些路径变得缓慢(还有很多,因为它是一个世界地图,吸引了很多国家).

所以我的第一个方法是创建这个pathSimplified包装器path:

// Path simplified: take some decimals out of the 'd' string
pathSimplified = function (d) {
        return path(d).replace(/(\.\d{4})\d+/g, '$1');
    };
Run Code Online (Sandbox Code Playgroud)

然后使用它而不是path:

    //...
    .attr({
         class: "country",
         d: pathSimplified
     })
Run Code Online (Sandbox Code Playgroud)

这是有效的,现在我只获得路径字符串上每个值的4位小数.像这样:

M713.6010,459.8780L714.7443,460.0817L715.0310,460.5903L715.0310...
Run Code Online (Sandbox Code Playgroud)

我的问题是:它能以更好,更少的hackish方式完成吗?在D3js的path函数吐出之后调整字符串是不正确的,并且在路径本身或投影的某个点指定舍入将是很好的...

javascript svg projection geo d3.js

5
推荐指数
1
解决办法
590
查看次数

标签 统计

d3.js ×1

geo ×1

javascript ×1

join ×1

oracle ×1

outer-join ×1

projection ×1

sql ×1

svg ×1