Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 无小数点转换varchar类型变量号_Sql_Regex_Oracle - Fatal编程技术网

Sql 无小数点转换varchar类型变量号

Sql 无小数点转换varchar类型变量号,sql,regex,oracle,Sql,Regex,Oracle,我需要在Oracle SQL中将varchar2类型值100.0转换为100(不带小数点)。你能帮我吗?我使用了regexp\u substr…但在下面给出的一种情况下它失败了 SELECT REGEXP_SUBSTR(0.1,'(\d*)') FROM DUAL;---it results in Null but i want zero(0). 注意:-在Orcale sql developer中,您希望以希望显示的格式显示数字,所以应该使用格式化函数。在我看来,这里不需要四舍五入-下面的查

我需要在Oracle SQL中将
varchar2
类型值
100.0
转换为
100
(不带小数点)。你能帮我吗?我使用了
regexp\u substr
…但在下面给出的一种情况下它失败了

SELECT REGEXP_SUBSTR(0.1,'(\d*)') FROM DUAL;---it results in Null but i want zero(0).

注意:-在Orcale sql developer中,您希望以希望显示的格式显示数字,所以应该使用格式化函数。在我看来,这里不需要四舍五入-下面的查询应该会给你你想要的

SELECT 
    TO_CHAR(TO_NUMBER('100.1'),'FM9999') as res
FROM 
    dual
;

有关数字格式的更多信息,请参见。

尝试此操作。…

SELECT TRUNC(TO_NUMBER(100.5)) FROM DUAL;

REGEXP_SUBSTR的第一个参数不应该是字符串吗?似乎您提供了一个float。请尝试从DUAL中选择REGEXP_SUBSTR(“0.1”,“^\d+”)或使用
CAST
将float转换为varchar。如果该varchar2不包含除十进制数以外的其他文本,则可以不使用正则表达式进行转换<代码>TO_CHAR(地板(TO_NUMBER(“0.1”))谢谢LukStorms。@LukStorms听起来像是一个答案虽然这个代码可能(也可能不会)解决问题,但一个好的答案应该总是解释代码的作用以及它是如何帮助的。