gpt4 book ai didi

sql - 我如何知道在 oracle 9i 中哪些值是数字

转载 作者:行者123 更新时间:2023-12-04 13:42:18 24 4
gpt4 key购买 nike

我有一个包含 varchar 的数据库。

我想知道哪些记录包含数值。我试过 REGEXP_COUNT 和其他,但我在 9i 上运行,我认为这是 10g >

我怎样才能做到这一点?

我试过了:

 select to_number( my_column ) from my_table 

但这不起作用,因为并非所有这些都是数字的。

编辑

背景。

此表包含员工 id,所有这些都是数字(读取 1234 或 24523 或 6655)

在初始数据库加载中,当员工 id 未知而不是使用类似 -1 时,他们输入的文本如下:

NA, N/A, NONE, UNK, UNKNOW, TEST, EXTERNAL, WITHOUT_ID

真正的主要错误是,该列是 varchar 而不是应有的数字。

现在,我尝试做的是获取所有非数字记录(不包含员工 id),但由于 db 是 9i,我无法使用 RegExp

最佳答案

恐怕您必须编写自己的 isnumber 函数,然后使用它,在 thread 中找到类似这样的内容(未经测试) ,应该可以。

 DECLARE FUNCTION isNumber(p_text IN VARCHAR2) RETURN NUMBER IS
v_dummy NUMBER;
not_number EXCEPTION;
PRAGMA EXCEPTION_INIT(-, not_number);
BEGIN
v_dummy := TO_NUMBER(p_text);
RETURN 1;
EXCEPTION
WHEN not_number THEN RETURN 0;
END is_number;

之后,您可以使用 decode 函数结合您的 isnumber 函数来获得您需要的结果。

关于sql - 我如何知道在 oracle 9i 中哪些值是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1723925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com