删除 PostgreSQL 中数字列的所有尾随零

2024-01-11

我有这张桌子properties其中有一个列atomic_mass类型的NUMERIC(9,6):

 atomic_mass 
-------------
    1.008000
    4.002600
    6.940000
    9.012200
   10.810000
   12.011000
   14.007000
   15.999000
    1.000000
(9 rows)

因此,我想删除该列的所有尾随零,例如 1.008、4.0026 等。 所以,我尝试执行以下操作:

UPDATE properties SET atomic_mass=trim(trailing '0' from atomic_mass::text)::numeric;

但是,它不起作用。我测试了trim功能运行良好。如果我输入

SELECT trim(trailing '0' from atomic_mass::text)::numeric from properties

它返回

rtrim  
--------
  1.008
 4.0026
   6.94
 9.0122
  10.81
 12.011
 14.007
 15.999
      1

我想要的专栏。那么,我在这里做错了什么? 我正在使用 PostgreSQL 12.9。


您已将该列定义为NUMERIC(9,6)。从这里数字类型 https://www.postgresql.org/docs/current/datatype-numeric.html那是NUMERIC(precision, scale), where scale is :

数字的小数位数是小数部分(小数点右侧)的小数位数。

所以跑步trim更新值不会有帮助,因为列定义scale将覆盖它。尾随零是一个格式问题,必须在输出时处理。

UPDATE

鉴于您对此答案的评论中有关能够更改列类型的信息:

create table numeric_test (num_fld numeric, num6_fld numeric(9,6));
insert into numeric_test values (12.011000, 12.011000), (4.002600, 4.002600), (1.000000, 1.000000);

select * from numeric_test ;
  num_fld  | num6_fld  
-----------+-----------
 12.011000 | 12.011000
  4.002600 |  4.002600
  1.000000 |  1.000000

update numeric_test set num_fld = trim(trailing '0' from num_fld::text)::numeric, num6_fld = trim(trailing '0' from num6_fld::text)::numeric ;

select * from numeric_test ;
 num_fld | num6_fld  
---------+-----------
  12.011 | 12.011000
  4.0026 |  4.002600
       1 |  1.000000

--
insert into numeric_test values (9.012200, 9.012200);

select * from numeric_test ;
 num_fld  | num6_fld  
----------+-----------
   12.011 | 12.011000
   4.0026 |  4.002600
        1 |  1.000000
 9.012200 |  9.012200

与无拘无束的numeric您可以在修剪现有值的更新中删除尾随零。但是,如果它们包含在不修剪它们的插入或更新中,您仍然会得到它们。

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

删除 PostgreSQL 中数字列的所有尾随零 的相关文章

随机推荐

  • 如何计算spark中DataFrame中列的百分位数?

    我正在尝试计算 DataFrame 中列的百分位数 我在 Spark 聚合函数中找不到任何percentile approx 函数 例如在Hive中我们有percentile approx 我们可以通过以下方式使用它 hiveContext
  • 图像色彩饱和度

    我试图找到一种饱和函数形式 但没有找到任何东西 这不可能那么难 但我所有的猜测看起来都不太正确 去饱和的方向似乎更容易 我有 RGB 格式的图像像素数据 最终图像也应该是 RGB 格式 那么 这些函数是如何定义的 r n saturatio
  • AS3:文本字段焦点

    我正在尝试处理 TextField 上的焦点事件 以便在聚焦 选项卡或单击 时可以选择所有文本 看来我在这里做错了什么 txtTextField addEventListener FocusEvent FOCUS IN handleFocu
  • 将文本颜色和提示文本颜色设置为SearchView中的文本

    我想将文本颜色和提示文本颜色设置为 android support v7 widget SearchView 中的文本 该文本不在 ActionBar 中 也不在 Menu 选项中 我尝试了 stackoverflow 中提到的几种方法 但
  • 如何获取Linux上的非系统用户列表?

    考虑到所有用户id gt 1000是非系统用户 我们如何在单个命令中获取这些用户的列表 您需要获取所有用户gid大于或等于 1000 使用此命令 awk F 3 gt 1000 1 nobody print 1 etc passwd 如果你
  • Angular:vscode 中预期的表达式

    当我保存文件时 vscode 自动滚动到该随机行并指向 给出这个错误 我只是检查是否dateToComplete is null因为有时需要 我是否需要禁用 ts 的某些新功能 if this editMode this dateToCom
  • 为什么在 Selenium 中使用 add_experimental_option ?

    我试图理解与以下内容非常相似的代码片段 from selenium webdriver chrome options import Options chrome options Options port number 127 0 0 1 8
  • (Vue,ChartJS)从子组件画布上下文为图表创建渐变背景

    我想为我的图表提供渐变背景颜色 但我无法访问画布上下文 因为我的图表在我编写的包装器组件中呈现 What I want to achieve 我的实际包装看起来像这样
  • 使用 Java 解密由 .NET 的 RijndaelManaged 加密的字节

    我正在尝试解密一些东西 它是使用 NET C 的 RijndaelManaged 加密的 使用 Java 解密 C 程序不是我的 我无法将其更改为更具互操作性 但我知道它是如何加密的 byte bytes new UnicodeEncodi
  • 如何验证Java线程堆栈大小是否固定或有限?

    我试图验证 Java 堆栈大小是否固定 在开始时设置 或有限 增长到一定限制 我试图用一个简单的程序来测量这一点 该程序创建一定数量的线程 设置 Xss 但到目前为止我只发现 RSS 是每个进程的 并且出于明显的原因 知道堆大小在这里毫无意
  • Linq 完全外连接与数据表中的 NULL 记录 C#

    请问有人可以帮忙吗 我需要在 Extn In Call Records Extn Number 上返回一个表 如果任一侧不匹配 仍然返回一个计算 就像 SQL 完全外连接一样 我花了几个小时看这个 但无法让它工作 如果删除联合 我可以让代码
  • Monodroid - EditText 输入法不接受数字

    我在使用 Mono for Android 中的 EditText 控件时遇到一些非常奇怪的问题 我的解决方案针对的是 2 3 并且我正在 T Mobile VivaCity 上进行调试 这是我的 EditText 的 AXML
  • 如何阻止 git 在结账时破坏编码

    我最近使用以下设置将 gitattributes 文件添加到 c 存储库 text auto cs text diff csharp 我重新规范化了存储库按照 github 上的这些说明进行操作 https help github com
  • 更干净的元组 groupBy

    我有一系列键值对 String Int 我想按键将它们分组为值序列 即Seq String Int gt Map String Iterable Int 明显地 toMap在这里没有用 并且groupBy将值维护为元组 我想出的最好的办法是
  • Android Things:截图

    如何通过 ADB for Android Things 截屏 我努力了 adb shell screencap p sdcard screen png adb pull sdcard screen png adb shell rm sdca
  • Angular UI-Routing,页面刷新时自动重定向到父状态

    我正在开发一个使用 Angular UI 路由的项目 当我尝试刷新网页或直接输入 URL 时 它会被重定向到父状态 它确实加载了我重新加载的 URL 的状态 但随后快速重定向到父状态 这是我的状态路由 stateProvider state
  • 如何在 Objective C 中初始化一个空的可变数组

    我有一个对象 卡车 列表 其中包含填充表格视图的各种属性 当您点击它们时 它们会转到单独的卡车页面 有一个添加按钮 可以将它们添加到另一个表格视图中的收藏夹列表中 如何在 Cocoa 中初始化一个空的可变数组 我有以下代码 IBAction
  • bash脚本杀死超过一小时的php进程

    我有以下内容 kill 9 ps aux grep php awk 9 0 9 0 9 awk print 2 它的作用是杀死被 fcgid 放弃的进程并杀死它们以释放 RAM 我想每小时运行一次 cron 但想杀死早于一小时的进程 我只是
  • Textmate 到处检查拼写

    有什么方法可以检查我在 Textmate 中输入的所有单词的拼写吗 很难相信 但我实际上使用合法的英语单词来表示我的所有变量和类名 因此未突出显示的拼写错误简直要了我的命 如果有一种方法可以检查带有特殊字符的单词的拼写 那就太好了 uesr
  • 删除 PostgreSQL 中数字列的所有尾随零

    我有这张桌子properties其中有一个列atomic mass类型的NUMERIC 9 6 atomic mass 1 008000 4 002600 6 940000 9 012200 10 810000 12 011000 14 0