标签: oracle-19c

零/NULL 大小写技巧

在《SQL 入门》一书中,Thomas Nield 谈到了一种他称之为“零/空情况技巧”的技术:

有一个简单但功能强大的工具,可以将不同的过滤条件应用于不同的聚合。我们可以在两个单独的列中创建龙卷风存在与不存在时的单独总计数:

SELECT year, month,
SUM(CASE WHEN tornado = 1 THEN precipitation ELSE 0 END) as tornado_precipitation,
SUM(CASE WHEN tornado = 0 THEN precipitation ELSE 0 END) as non_tornado_precipitation
FROM station_data
WHERE year >= 1990
GROUP BY year, month
Run Code Online (Sandbox Code Playgroud)

我们有效地做的就是当tornado = 1 或tornado = 0 时去掉WHERE 条件,然后将这些条件移至SUM() 函数内的CASE 表达式。如果满足条件,则将降水值添加到总和中。如果不是,则添加 0,但没有效果。我们对两列进行这些操作,分别针对龙卷风存在时和不存在龙卷风时进行。

您可以使 CASE 表达式具有所需数量的条件/值对,从而使您能够通过聚合对值进行高度特定的截取。您还可以使用此技巧来模拟交叉表和数据透视表,将聚合表示为单独的列而不是行。一个常见的示例是进行当年/上一年分析,因为您可以使用不同的列来表示不同的年份。


作为新手,该技术似乎对于总结数据非常有用。我想在线查找该技术以获取更多信息。

该书的作者将该技术称为“零/空案例技巧”。但当我用谷歌搜索这个词时,我没有得到很多结果。

问题:

该技术有一个普遍接受的名称吗?(在线搜索时会产生更多结果)

oracle terminology case sum oracle-19c

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

UTL_FILE目录名称更改oracle 19c

我有UTL_FILE.FOPEN使用的脚本,目录的参数传递是绝对路径,/asr/file/path即相应的oracle目录名称,但ASR_ABC升级到oracle 19c后,参数预计为目录名称ASR_ABC而不是绝对路径/asr/file/path

如果我传递绝对路径,则会出现错误Invalid path

我是否必须将所有文件从绝对路径更改为目录名称?或者是否有任何可以从数据库完成的工作以避免所有文件发生更改?

oracle oracle-19c

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

Oracle 新创建的 DB 充满了数据表

我刚刚使用 oracle 数据库配置助手创建了我的第一个数据库。

在此处输入图片说明

基本上没什么特别的,数据库创建成功。我不明白的是为什么数据库中已经有这么多表?如何在oracle中创建空数据库?

在此处输入图片说明

oracle oracle-19c

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

标签 统计

oracle ×3

oracle-19c ×3

case ×1

sum ×1

terminology ×1