提问人:Sly 提问时间:5/13/2022 最后编辑:jarlhSly 更新时间:5/13/2022 访问量:713
Oracle SQL 如何导出空值
Oracle SQL how to export null values
问:
关于如何将记录从 Oracle SQL Developer 的输出复制到 Excel 工作表有关
我正在使用 Oracle SQL 开发人员。我有一些查询在结果网格中获得一些空值。我会在 Excel 中剪切/粘贴这些值,但 null 被粘贴为空,而不是“null”,因此很难在包含空格的单元格中找到它们。 有没有办法在Excel中将null导出为“null”?
谢谢。
答:
1赞
Toni Antunović
5/13/2022
#1
如果您的列的数据类型为 varchar2,则:
select case
when your_column is null then 'null'
else your_column
end your_column
from your_table;
如果您的列是数字或日期数据类型,则只需使用to_char将非 null 值转换为字符串:
select case
when your_column is null then 'null'
else to_char(your_column)
end your_column
from your_table;
评论
0赞
Sly
5/16/2022
您好,谢谢,但所有答案都需要适应 sql 查询。我希望在oracle sql开发人员选项中有一种设置,允许从任何网格结果中将null复制为“null”,以便在excel中粘贴时,“null”将写在单元格中。类似的东西。
0赞
Toni Antunović
5/16/2022
@Sly 您可以使用 set null 'null' 命令并在脚本 (F5) 中运行查询,它将显示“null”或您输入的任何内容,而不是 null 值。您可以将结果导出为 csv 文件,它也将遵循 set null 命令。
0赞
Sly
5/17/2022
谢谢你的提示。我试过了,但结果只是文本、非结构化数据,所以它对我来说并不真正有用(必须重建所有结构、列,耗时)。或者我错过了什么(?...
0赞
Gnqz
5/13/2022
#2
您有多种选择:
- 使用案例与比较
IS NULL
- 使用 NVL()
- 与类似的东西一起使用
DECODE()
DECODE(<col>, NULL, 'NULL', <col>)
评论
0赞
Sly
5/16/2022
您好,谢谢,但所有答案都需要适应 sql 查询。我希望在oracle sql开发人员选项中有一种设置,允许从任何网格结果中将null复制为“null”,以便在excel中粘贴时,“null”将写在单元格中。类似的东西。
0赞
Gnqz
5/16/2022
看看这个 stackoverflow.com/questions/31349673/...。在这种情况下,这可能更接近您的需求。
0赞
Gnqz
5/16/2022
有一个 sqlplus 选项集 null “null”。你试过了吗?
0赞
Sly
5/17/2022
嗨,Gnqz,对不起,我没有“SQLplus”,不幸的是,只有 Oracle SQL Developper。尽管如此,我还是尝试了上面 Toni 建议的 set null 'null' 命令,但结果只是文本、非结构化数据,因此每次都需要重建结构(列),这很耗时。关于您提供的另一个链接:我尝试更改此高级选项上的某些选项,但是,在复制时,它仍然不会像粘贴时那样被剪贴板采用,这些空值没有任何结果。
评论