Sql 无小数点转换varchar类型变量号
我需要在Oracle SQL中将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中,您希望以希望显示的格式显示数字,所以应该使用格式化函数。在我看来,这里不需要四舍五入-下面的查
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听起来像是一个答案虽然这个代码可能(也可能不会)解决问题,但一个好的答案应该总是解释代码的作用以及它是如何帮助的。