小编Kar*_*arl的帖子

postgres视图中的临时序列

我有一张桌子,经常以某种方式订购.该排序是我们可以称为排名的派生列的基础.如果我查询整个表,我可以让数据库为我计算排名:

CREATE TEMP SEQUENCE the_seq;
SELECT my_table.foo, my_table.bar, nextval('the_seq') AS rank
FROM my_table
ORDER BY my_table.bar DESC;
Run Code Online (Sandbox Code Playgroud)

这产生了有用的结果,如:

foo  | bar  | rank
-------------------
0005 | 2100 | 1
0003 | 1632 | 2
0002 | 1200 | 3
0001 | 899  | 4
0004 | 500  | 5
Run Code Online (Sandbox Code Playgroud)

通过该结果集,我可以确定任何foo的等级.然而,这需要我查询整个表并迭代结果集,即使我只想要foo'0001'的等级.

理想情况下,我会有一个为我排名列的视图,所以我可以任意说:

SELECT my_table_vw.foo, my_table_vw.bar, my_table_vw.rank
FROM my_table_vw
WHERE my_table_vw.foo = '0001'
Run Code Online (Sandbox Code Playgroud)

然后得到

foo  | bar  | rank
-------------------
0001 | 899  | 4
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何在数据库中构造它,因为视图不能在它们的定义中构造临时序列.我甚至想做什么?我觉得它必须是因为替代方案,保持插入或查询整个表的排名似乎很荒谬.

sql postgresql

2
推荐指数
1
解决办法
1771
查看次数

如何用scala中的其他文本替换字符串中的文本

我有以下字符串

var str="ArtShare$u002ETotalArtShares"
Run Code Online (Sandbox Code Playgroud)

我想用它替换它"$u002E""."这样我的字符串就会变成“ArtShare.TotalArtShares”来实现这个我使用了替换功能

var str="ArtShare$u002ETotalArtShares"
var replace=str.replace(".","$u002E")
println("replaced string is "+replace)
Run Code Online (Sandbox Code Playgroud)

但它不工作以下打印在控制台上

replaced string is ArtShare$u002ETotalArtShares
Run Code Online (Sandbox Code Playgroud)

请指导我哪里做错了谢谢

更新用户的答案后nyavro我想这

var str="ArtShare$u002ETotalArtShares"
var replace=str.replace("$u002E", ".")
println("replaced string is "+replace)
Run Code Online (Sandbox Code Playgroud)

但输出保持不变,但为了测试我已经尝试过这个

 var str1="ArtShare$u002ETotalArtShares"
 var replace1=str1.replace("Total", ".")
 println("replaced string is "+replace1)
Run Code Online (Sandbox Code Playgroud)

打印以下内容

replaced string is ArtShare$u002E.ArtShares
Run Code Online (Sandbox Code Playgroud)

这意味着当我用“.”替换 Total 时代码正在工作。但是当我给出这部分字符串时它不起作用$u002E请帮助我我不明白为什么会发生这种情况

更新 2 我试过这样做

 var str2="ArtShare$u002ETotalArtShares"
 var replace2=str2.replace("u002E", ".")
 println("replaced string is "+replace2)
Run Code Online (Sandbox Code Playgroud)

打印以下内容

replaced string is ArtShare$.TotalArtShares
Run Code Online (Sandbox Code Playgroud)

在那之后,我猜是 $sign 导致了它没有替换的问题,请帮助我我该如何替换它

string replace scala scala-2.11

2
推荐指数
1
解决办法
3492
查看次数

标签 统计

postgresql ×1

replace ×1

scala ×1

scala-2.11 ×1

sql ×1

string ×1