我有以下 oracle SQL 及其作品,但所有or
s都很丑陋。有没有更简洁的方法来做到这一点?
SELECT * FROM foobar WHERE
(SUBJECT ='STAT' and TERM ='111') or
(SUBJECT ='STAT' and TERM ='222') or
(SUBJECT ='ENGLISH' and TERM ='555') or
(SUBJECT ='COMM' and TERM ='444') or
(SUBJECT ='COMM' and TERM ='333') or
(SUBJECT ='STAT' and TERM ='666')
...
Run Code Online (Sandbox Code Playgroud) 我有一系列 ETL 作业,在这些作业中我swap
使用CREATE TABLE table1_swap LIKE table1
. 为了使填充table1_swap
更快,我不包括索引。但是,当我完成加载时,我需要将这些索引重新应用于新填充的表。这些索引是在这些 ETL 作业范围之外创建的,因此CREATE INDEX
如果我不需要,我宁愿不必对调用进行硬编码。
是否可以将一组索引从一个表“转移”或“复制”到另一个表?
我有两个表,我想查询:pest_counts
和pests
看起来像:
CREATE TABLE pests(id,name)
AS VALUES
(1,'Thrip'),
(2,'Fungus Gnosts');
CREATE TABLE pest_counts(id,pest_id,date,count)
AS VALUES
(1,1,'2015-01-01'::date,14),
(2,2,'2015-01-02'::date,5);
Run Code Online (Sandbox Code Playgroud)
我想使用 postgres'generate_series
来显示日期系列中发现的每种害虫的数量:
预期成绩
name | date | count
-------------+------------+-------
Thrip | 2015-01-01 | 14
Thrip | 2015-01-02 | 0
....
Fungus Gnats | 2015-01-01 | 0
Fungus Gnats | 2015-01-02 | 5
...
Run Code Online (Sandbox Code Playgroud)
我知道我需要类似以下的东西,但我不确定如何做剩下的事情:
SELECT date FROM generate_series('2015-01-01'::date, '2015-12-31'::date, '1 day') date
Run Code Online (Sandbox Code Playgroud) 我有学生动作的表(id
,student_id
,type
,和quarter
)。我需要获取所有学生的列表,以及他们在当前季度和上一季度是否有特定操作的标志,但我不确定如何在 Oracle SQL 中执行此操作。
假设当前季度是 3,并且我只对Expulsion
和Probation
操作感兴趣,我将如何获得像下面模拟的结果集?