十进制数、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 的相关文章

  • 递归 SQL 给出 ORA-01790

    使用 Oracle 11g 第 2 版 以下查询给出 ORA 01790 表达式必须与相应表达式具有相同的数据类型 with intervals time interval AS select trunc systimestamp from
  • 如何在sqlite中创建物化视图?

    我对物化视图和 SQLite 进行了无数次搜索 据我所知 2004 年和 2006 年似乎有人提到 SQLite 没有物化视图 紧随其后的是 SQLite 的变更日志2008年3月 http www sqlite org releaselo
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • 使用 WHILE 创建虚拟数据

    我尝试使用 a 在表中插入一些虚拟数据WHILE 但它运行得非常非常慢 我在想也许我写的代码不正确 你能看一下并确认一下吗 Insert dummy data DECLARE i int Content int SET i 5001 WHI
  • java.sql.Timestamp 到微秒精度的字符串

    我正在将时间戳列从数据库读取到 java sql Timestamp 对象中 然后我想将时间戳的值转换为 String 对象 但保持微秒精度 调用 toString 方法让我接近 但它似乎在微秒内丢失了尾随零 如果时间戳以非零数字结尾 则一
  • 将两行中相似的列数据合并到一行中

    我的查询结果具有以下特征 LIDCode Total Domain Region VSE Version AB02 15 GLOBAL CANLA 0 6943 AB02 5925 CENTRE STREET SW 31 GLOBAL CA
  • TOAD 将 &String 视为绑定变量

    我正在使用 Oracle Data Integrator 开发一些 ETL 有时会使用 TOAD 测试部分代码 今天我遇到了 TOAD 的问题 我有一行像 AND column value like DEV PROD 当我尝试运行包含上面过
  • Oracle 中的 SQL 调优 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何文章 链接可以让我找到 SQL 调优 Oracle 的示例 如果能用例子来解释那就太好了 我需
  • sql查询将两列与一列连接起来

    我在 MS Access 2010 中有 2 个表 如下所示 USERS u id u name LOAN l id l from ref users u id l to ref users u id l amount Users u id
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • 使用 Spark DataFrame 获取组后所有组的 TopN

    我有一个 Spark SQL DataFrame user1 item1 rating1 user1 item2 rating2 user1 item3 rating3 user2 item1 rating4 如何按用户分组然后返回TopN
  • 使用Powershell访问远程Oracle数据库

    我需要能够连接到我的网络上基于 Windows 7 的 Oracle 服务器 32 位 Oracle XE 我需要连接的机器运行 Windows 7 64 位 两台机器上都安装了 Powershell 我已在 64 位计算机上安装了 Ora
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 如何使用PostGIS将多边形数据转换为线段

    我在 PostgreSQL PostGIS 中有一个多边形数据表 现在我需要将此多边形数据转换为其相应的线段 谁能告诉我如何使用 PostGIS 查询进行转换 提前致谢 一般来说 将多边形转换为线可能并不简单 因为没有一对一的映射 http
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 拆分列中的字符串并在列中添加值

    我有一个包含几行数据的表 如下所示 16 W 2 Work ALBO 00 Proposal ALxO Amendement 1 20091022 signed pdf 17 W 2 Work ALBO 00 Proposal Level1
  • Pivotal Cloud Foundry - 连接到外部 Oracle 数据库

    我正在创建一个 Spring boot 应用程序 该应用程序连接到一个不由 PCF 管理 或驻留在外部 的 Oracle 数据库 在我的本地开发环境中 我在 application properties 文件中配置了数据库连接详细信息 有人
  • APEX 安装失败,PLS-00201:必须声明标识符“SYS.DBMS_DB_VERSION”

    尝试在 Oracle XE 18c 数据库上安装 Oracle APEX 20 2 如下官方说明 https docs oracle com en database oracle application express 20 1 htmig
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act

随机推荐

  • 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