小编Kyl*_*cot的帖子

避免多个 `or` 表达式

我有以下 oracle SQL 及其作品,但所有ors都很丑陋。有没有更简洁的方法来做到这一点?

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)

oracle query-refactor

13
推荐指数
2
解决办法
2484
查看次数

将索引从一张表复制到另一张表

我有一系列 ETL 作业,在这些作业中我swap使用CREATE TABLE table1_swap LIKE table1. 为了使填充table1_swap更快,我不包括索引。但是,当我完成加载时,我需要将这些索引重新应用于新填充的表。这些索引是在这些 ETL 作业范围之外创建的,因此CREATE INDEX如果我不需要,我宁愿不必对调用进行硬编码。

是否可以将一组索引从一个表“转移”或“复制”到另一个表?

postgresql index dynamic-sql ddl plpgsql

8
推荐指数
2
解决办法
7050
查看次数

postgresql 中多种记录类型的 generate_series

我有两个表,我想查询:pest_countspests看起来像:

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)

postgresql

8
推荐指数
1
解决办法
2865
查看次数

获取在 Oracle 中执行操作的学生列表

我有学生动作的表(idstudent_idtype,和quarter)。我需要获取所有学生的列表,以及他们在当前季度和上一季度是否有特定操作的标志,但我不确定如何在 Oracle SQL 中执行此操作。

student_actions 表

在此处输入图片说明

假设当前季度是 3,并且我只对ExpulsionProbation操作感兴趣,我将如何获得像下面模拟的结果集?

预期成绩

在此处输入图片说明

oracle

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

标签 统计

oracle ×2

postgresql ×2

ddl ×1

dynamic-sql ×1

index ×1

plpgsql ×1

query-refactor ×1