Oracle - WHERE 子句中的列 NUMBER(38) - 数据有逗号
Oracle - Column NUMBER(38) in WHERE clause - data has comma
我正在尝试在列数据类型 NUMBER(38) 上使用 where 子句查询 table。因为它是一个 NUMBER(如下图所示)这行不通
SELECT * FROM PAT WHERE ID='1,234'
所以我使用 TO_NUMBER & NLS_NUMERIC_CHARACTERS
转换了字符串
SELECT TO_NUMBER ('1,234', '9G999',
'nls_numeric_characters = ''.,''') AS FROM Dual;
输出:1,234
但是,我不确定如何在 WHERE
子句中使用它,因为我得到:
INVALID IDENTIFIER
不要使用字符串作为数字。使用适当的数字常量:
select *
from PAT
where ID = 1.234
数字不得用单引号引起来。在 SQL 中,小数点分隔符是 .
查看手册了解更多详情:https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF00220
可能子查询可以工作:
select * from PAT where ID IN (Select TO_NUMBER ('1,234', '9G999',
'nls_numeric_characters = ''.,''') as from Dual;
我正在尝试在列数据类型 NUMBER(38) 上使用 where 子句查询 table。因为它是一个 NUMBER(如下图所示)这行不通
SELECT * FROM PAT WHERE ID='1,234'
所以我使用 TO_NUMBER & NLS_NUMERIC_CHARACTERS
SELECT TO_NUMBER ('1,234', '9G999',
'nls_numeric_characters = ''.,''') AS FROM Dual;
输出:1,234
但是,我不确定如何在 WHERE
子句中使用它,因为我得到:
INVALID IDENTIFIER
不要使用字符串作为数字。使用适当的数字常量:
select *
from PAT
where ID = 1.234
数字不得用单引号引起来。在 SQL 中,小数点分隔符是 .
查看手册了解更多详情:https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF00220
可能子查询可以工作:
select * from PAT where ID IN (Select TO_NUMBER ('1,234', '9G999',
'nls_numeric_characters = ''.,''') as from Dual;