Oracle SQL 如何导出空值

Oracle SQL how to export null values

提问人:Sly 提问时间:5/13/2022 最后编辑:jarlhSly 更新时间:5/13/2022 访问量:713

问:

关于如何将记录从 Oracle SQL Developer 的输出复制到 Excel 工作表有关

我正在使用 Oracle SQL 开发人员。我有一些查询在结果网格中获得一些空值。我会在 Excel 中剪切/粘贴这些值,但 null 被粘贴为空,而不是“null”,因此很难在包含空格的单元格中找到它们。 有没有办法在Excel中将null导出为“null”?

谢谢。

sql excel null oracle-sqldeveloper

评论

0赞 Jesusbrother 5/13/2022
也许可以在导入设置中找到一些东西,但也许最简单的选择是在查询中使用类似 CASE x when null then '<NULL>' ELSE x END 之类的东西

答:

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

您有多种选择:

  1. 使用案例与比较IS NULL
  2. 使用 NVL()
  3. 与类似的东西一起使用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' 命令,但结果只是文本、非结构化数据,因此每次都需要重建结构(列),这很耗时。关于您提供的另一个链接:我尝试更改此高级选项上的某些选项,但是,在复制时,它仍然不会像粘贴时那样被剪贴板采用,这些空值没有任何结果。