十进制数、to_char 和 Oracle

2024-02-18

我试图找出 to_char() 的格式规范,它会给我以下结果。

to_char(0.1, '[FORMAT_SPEC]')

给出 0.1 并且:

to_char(1, '[FORMAT_SPEC]')

gives 1.

我尝试过以下解决方案:

to_char(0.1)

给出“.1”。

to_char(0.1, 'FM0.099')

给出 0.1,这是可以的,但是:

to_char(1, 'FM0.099')

给出 1.0,这是不行的。

你有什么建议吗?


返回的精度需要一致,所以唯一的选择是使用DECODE http://techonthenet.com/oracle/functions/decode.php or CASE http://techonthenet.com/oracle/functions/case.php有条件地返回您需要的内容的语句:

CASE 
  WHEN INSTR(TO_CHAR(t.col), '.') = 0 THEN TO_CHAR(t.col)
  ELSE TO_CHAR(t.col, 'FM0.099')
END

这个例子不太好 - 不清楚你的数据是否会有这样的值1.000或高于一的值/等等。

编辑 Michael-O (2013-06-25):对于那些需要防白痴的人,您可以尝试:

case
  when instr(to_char(<col>), (select to_char(0, 'FMD') from dual))  = 0
    then to_char(<col>) 
  else to_char(<col>, 'FM999990D999')
end

它会自动观察小数点分隔符。根据您的数字大小调整第二种格式模式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十进制数、to_char 和 Oracle 的相关文章

  • 参数的性能不如硬编码值

    我有一个执行得很糟糕的存储过程 当我声明一个变量时 设置它的值 然后在 where 子句中使用它 该语句需要一个多小时才能运行 当我对 where 子句中的变量进行硬编码时 它的运行时间不到一秒 我开始通过执行计划来查找问题所在 看起来当我
  • 将整数值从数据库列转换为Oracle中的文本

    我对数据库有一个要求 1 表ABC 列 check amount number number 18 4 这基本上包含例如支票金额 3000 50 支付给雇员 现在签发了一张支票 该支票包含数字和文本形式的 check amount 例如 支
  • 在 Android 版 ORMLite 中加入类会引发 SQL 异常:找不到外部类,反之亦然

    我正在尝试使用 QueryBuilder 为两个不同的类创建一个联接查询 一个Product类和一个Coupon类 引用 Product 属性 storeId public class Coupon DatabaseField column
  • oracle嵌套表的最大行数是多少

    CREATE TYPE nums list AS TABLE OF NUMBER Oracle 嵌套表中最大可能的行数是多少 UPDATE CREATE TYPE nums list AS TABLE OF NUMBER CREATE OR
  • 为什么 Sql Server 2000 上的 TSQL 对小数点的舍入不一致?

    我正在尝试计算美元金额的折扣百分比 在 50 的情况下 有时你会得到半分钱 我需要将其四舍五入到最接近的一分钱 在Sql中 我的计算如下 round retail 0 5 2 0 如果我采用以下值 我会得到不同的结果 4 39 2 49 不
  • Oracle Developer Tools for Visual Studio 2019 无法正确安装

    在 VS 2019 中 ODT 使用扩展名安装 而不是像以前的版本那样作为安装文件安装 因此 从 VS 2017 升级的 EF 6 使用的 MVC 项目 edmx 文件在扩展安装后不显示数据库图表 空白黑页 编辑 xml 选项等 仅此而已
  • SQL Server 2008 R2 DMV - sys.dm_sql_referencing_entities - 查询用法

    我正在尝试使用以下命令获取表列表的所有依赖项sys dm sql referencing entities DMV 这个查询给了我所有表的列表 SELECT TableName from FinalTableList 此查询给出 Table
  • 帮助将二进制图像数据从 SQL Server 读取到 PHP 中

    我似乎无法找到将二进制数据从 SQL 服务器读取到 PHP 的方法 我正在开发一个项目 需要能够将图像直接存储在 SQL 表中 而不是文件系统上 目前 我一直在使用这样的查询 插入 myTable 文档 选择 从 OPENROWSET BU
  • 为什么我的查询在参数化后会中断?

    我有 2 张桌子 Sales and Product Sales可以将产品存储为Idn or Name 传统设计 和Type列指定实际type与之相关 Product等是连接的子集表into这个表来获取真实的数据 在这个例子中 Produc
  • MySQL如何进行浮点加法的数学计算?

    我测试过SELECT 0 1 0 2 用MySQL MariaDB 查询 它返回了正确的答案 MariaDB none gt SELECT 0 1 0 2 0 1 0 2 0 3 1 row in set 0 000 sec 在大多数编程语
  • 如何从oracle存储过程中提取out变量?

    我有存储过程 其中有很多输出变量 所以我这样调用存储过程 export const infoHR3 async gt try const sql Declare ln order qty NUMBER ln in proc qty hr N
  • REPLACE MYSql 中的新行字符不起作用

    我执行了以下查询 由于某种原因它没有替换数据库中的换行符 它说 Rows matches 1 但没有变化 有什么问题吗 mysql gt UPDATE aboutme SET abouttext REPLACE abouttext n WH
  • SQL 语法检查器和验证器? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有类似 SQL 的 lint 语法检查器和验证器 之类的东西 有一个项目 SQLLint 检测 S
  • 我可以使用 VBA 将密码“传递”到 Excel 中的外部数据库连接吗?

    我正在尝试使用 VBA 隐藏我在 Excel 工作表中设置的数据连接的密码 由于 Excel 以纯文本形式存储外部数据源的密码 因此我想让 VBA 调用表的刷新并提供密码 我录制了刷新表格并输入密码的宏 但令我沮丧的是 它似乎省略了密码部分
  • SQL FORMAT 函数错误

    这个SQL select FORMAT lNum from rpt myView 产生以下错误 参数数据类型 varchar 对于格式的参数 1 无效 功能 lNum is a varchar 10 运行 SQL Server 2012 v
  • SQL如何显示某个日期之前的数据

    我有几张桌子 一个是一个工人表显示工人代码 名字和姓氏 工作日期其中显示工人代码 工作开始日期 结束日期和工作区域代码 导师有工人编号 名字 姓氏和工作区号 Job area有工作区域代码名称和主管 我想要做的是在日期 10 09 10 之
  • 转置和聚合 Oracle 列数据

    我有以下数据 Base End RMSA Item 1 RMSA Item 2 RMSA Item 3 RMSB Item 1 RMSB Item 2 RMSC Item 4 我想将其转换为以下格式 Key Products RMSA RM
  • 从 CTE 插入

    WITH DTL AS SELECT CMPI CODE CMN CDTY MTRL CMI WT FACTOR CMI CNTRCT RATE PL PRESENT PRICE TRM CODE ROUND NVL PRESENT PRI
  • 使用sqlbulkcopy之前如何创建表

    我有一个 DBF 文件 我正在尝试导入该文件 然后将其写入 SQL 表 我遇到的问题是 如果我使用 SqlBulkCopy 它需要我提前创建表 但在我的场景中这是不可能的 因为 dbf 文件不断变化 到目前为止 这是我的代码 public
  • 如何使用 Alter Table 在 Access 中创建小数字段?

    我想以编程方式在 MS Access 表中创建一个新列 我尝试过很多排列ALTER TABLE MyTable Add MyField DECIMAL 9 4 NULL 并得到 字段定义中的语法错误 我可以轻松创建一个数字字段Double类

随机推荐

  • 2012 年附加到流程

    我们曾经在 VS 2010 中附加了进程宏 这非常方便 既然宏在 Visual Studio 2012 中消失了 是否存在可以为我们执行此操作的插件 我们的宏将附加到 w3 exe 进程 这非常漂亮 也许我需要将宏转换为插件 我使用这个扩展
  • 神奇记录迁移失败“找不到源存储的模型”

    我们对 CoreData 模型进行了一些更改 看起来自动迁移失败了 即使我们将当前模型设置为用于生成数据的原始模型 仍然会出现错误 Reason 找不到源商店的模型 2014 09 05 02 19 43 297 948 166846 LB
  • 用户“postgres”的 Docker 密码身份验证失败

    我正在编写一个 docker compose 文件来启动一些服务 但数据库服务是个麻烦制造者 我总是收到此错误 FATAL password authentication failed for user postgres DETAIL Pa
  • 这个错误应该被修复吗?

    昨天我在 Net框架中发现了一个bug 并且发现这是一个已知的bug 不会被修复 简而言之 该错误在于 当将 int 以及可能的其他二进制类型 分配给该字段时 包含 IComparable 类型字段的类无法进行二进制序列化和反序列化 Ser
  • 类型错误:无法从 ndarray 中减去 DatetimeArray

    我的数据框中有两列 开始日期和完成日期 它是时间戳 我想通过找出差异来计算运行时间 当我运行下面的代码时 出现错误 TypeError cannot subtract DatetimeArray from ndarray 我也无法将完成日期
  • 如何撤消 Redux 异步操作? (状态后退多步)

    如果我有一个带有 api 调用的异步操作 它可以是一个操作返回一个函数 export function asyncAction itemId return dispatch gt dispatch requestStarted return
  • 检查数字是否具有相同的符号

    我遇到过这个 检查两个整数是否具有相同符号的最简单方法 https stackoverflow com questions 66882 simplest way to check if two integers have same sign
  • .Net CodeDom - 在 .net 中实现 lambda 表达式

    我想使用 CodeDom 写这样的东西 Where x gt x Id 2 我不知道 CodeDom System CodeDom 中与此等效的是什么 简短回答 CodeDOM 不支持 lambda 长答案 CodeDOM 不支持 lamb
  • 如何使用自定义比较器比较两个数组列表是否相等?

    具体来说 我有两个清单 List
  • 如何以编程方式关闭视频加速

    我在数百台计算机 专用 上运行的程序中使用 Windows Media Player OCX 我发现当视频加速打开到 全 时 在某些计算机上会导致视频无法正确播放 电影之间出现绿色方块等 将加速度设置为 无 一切正常 该程序在大约 800
  • Flutter:构建期间调用 setState() 或 markNeedsBuild()

    我有一个显示视频的页面 但是当我完成视频并弹回到上一页时 我收到以下错误 我的应用程序运行得很好 没有中断 但是下面的错误让我很困扰 构建期间调用 setState 或 markNeedsBuild 是我无法修复的错误 我需要帮助来修复此错
  • ElasticSearch:使用匹配的搜索词标记文档

    我正在使用 elasticsearch 1 7 并且需要一种方法来标记文档与它们匹配的 query string 查询的部分 我一直在尝试突出显示 但发现在某些情况下它会变得有点混乱 我希望用匹配的搜索词标记该文档 这是我正在使用的查询 注
  • 在不启动 PHP 会话的情况下检查 PHP 会话?

    是否可以在不启动会话的情况下检查会话 我问的原因是 我正在开发的应用程序有一个集成的管理界面 因此 当管理员登录时 他们会浏览与用户相同的页面来进行编辑 字段和选项根据用户权限显示 这导致了两个问题 One因为会话正在启动 所以我无法启用浏
  • 当我将铃声模式设置为 RINGER_MODE_SILENT 时,手机仍然振动,并且菜单中的图标设置为“振动”图标

    当我执行这段代码时 mAudioManager setRingerMode AudioManager RINGER MODE SILENT 我顶部菜单栏中的图标设置为振动图标 并且振动设置设置为振动而不是静音 我对 静音 的期望是没有振动
  • Electron 是针对不同的 Node.js 版本编译的

    我正在构建一个预计在 Ubuntu 20 xx Linux 和 Raspberry Pi 运行 Raspbian 和 arch armv7l 上运行的 Electron 应用程序 但收到以下错误 was compiled against a
  • 如何触发gitlab中的特定作业

    我想在管道中运行特定的作业 我认为为该作业分配一个标签 然后在 post 方法中再次指定该标签将满足我的需求 问题是当我使用 api post 触发时 所有作业尽管只有其中一个已标记 但管道中会触发事件 gitlab ci yml 工作1
  • Android TextView 去除顶部和底部空间的方法

    当我包括以下内容时XML to layout文件 我可以看到下图 如果你看到它 你就会意识到TextView有顶部和底部空间
  • 适用于 Visual Studio 2008 的 Windows CE SDK

    我是 Windows CE 编程新手 我有 Visual Studio 2008 和 Visual Studio 2005 我找到了以下适用于 Windows Mobile 的 SDK 请帮助我确定这是否是正确的 或者请随时将我重定向到正确
  • spring Resttemplate url 编码

    我尝试使用 springs Resttemplate 进行简单的休息调用 private void doLogout String endpointUrl String sessionId template getForObject htt
  • 十进制数、to_char 和 Oracle

    我试图找出 to char 的格式规范 它会给我以下结果 to char 0 1 FORMAT SPEC 给出 0 1 并且 to char 1 FORMAT SPEC gives 1 我尝试过以下解决方案 to char 0 1 给出 1