什么更快?
合并声明
MERGE INTO table_name
USING dual
ON (row_id = 'some_id')
WHEN MATCHED THEN
UPDATE SET col_name = 'some_val'
WHEN NOT MATCHED THEN
INSERT (row_id, col_name)
VALUES ('some_id', 'some_val')
Run Code Online (Sandbox Code Playgroud)
要么
查询select语句然后使用update或insert语句.
SELECT * FROM table_name where row_id = 'some_id'
Run Code Online (Sandbox Code Playgroud)
如果rowCount == 0
INSERT INTO table_name (row_id,col_name) VALUES ('some_id','some_val')
Run Code Online (Sandbox Code Playgroud)
其他
UPDATE table_name SET col_name='some_val' WHERE row_id='some_id'
Run Code Online (Sandbox Code Playgroud) 我需要一些东西来从java中的solaris10 os中的文件中获取硬链接数.
解析ls -l不是一个选项.
我尝试使用posix for java http://bmsi.com/java/posix/index.html但无法让它运行起来.
是否有任何其他轻量级API或代码来获取此信息?
在我的 Rundeck 上有多个项目,这些项目下的作业是按计划触发的,有些运行几分钟到一个小时。
我想重新启动 rundeck 服务器以应用一些配置更改,而不必影响这些作业,因此我想知道每个项目中是否有任何当前正在运行的作业。
我知道我可以手动浏览每个项目并检查每个正在运行的作业,但我想立即查看所有内容。
这可能吗?
我想根据另一列分组的不同列的最大值来获取列的值.
我有这张桌子:
KEY NUM VAL
A 1 AB
B 1 CD
B 2 EF
C 2 GH
C 3 HI
D 1 JK
D 3 LM
Run Code Online (Sandbox Code Playgroud)
并希望这个结果:
KEY VAL
A AB
B EF
C HI
D LM
Run Code Online (Sandbox Code Playgroud)
我实际上可以使用此查询来获取它.
select KEY, VAL
from TABLE_NAME TN
where NUM = (
select max(NUM)
from TABLE_NAME TMP
where TMP.KEY = TN.KEY
)
Run Code Online (Sandbox Code Playgroud)
但是在ORACLE SQL(10g或更高版本)中有更优雅的方式来获得结果吗?
它背后的原因是实际上有多个KEYs,它看起来有点难看.
我有下表
+-----------+-------+-------+
| Date | Type | Value |
+-----------+-------+-------+
| 1/1/2013 | A | 1 |
| 1/2/2013 | A | 3 |
| 1/3/2013 | A | 5 |
| 1/4/2013 | A | 6 |
| 1/6/2013 | A | 8 |
| 1/7/2013 | A | 1 |
| 1/8/2013 | A | 2 |
+-----------+-------+-------+
Run Code Online (Sandbox Code Playgroud)
我想对某一天的前 3 个日期的值求和,所以我使用了这个查询。即:sel_date = 1/3/2013。
select type, sum(value)
from table_name
where date <= seldate
and date > seldate - 3 …Run Code Online (Sandbox Code Playgroud)