oracle 填入编号,sql – 带填充模式的Oracle to_char格式编号(FM0000)
您的格式模型仍然必须允许值的符号.没有办法向TO_CHAR()表明它永远不会是负数(如果你的值实际上是这种情况).即使使用4位数字,格式允许允许五个字符,您可以从列标题中看到:
SQL> SELECT TO_CHAR(1234, 'FM0000') FROM DUAL;
TO_CH
-----
1234
请注意,列标题是TO_CH,它是五个字符,而不是四个字符.如果您有一个负数(如Florin建议的那样),您需要额外的空间:
SQL> SELECT TO_CHAR(-1234, 'FM0000') FROM DUAL;
TO_CH
-----
-1234
如果没有FM修饰符,则返回的字符串中的前导空格为正值,因此LENGTH(TO_CHAR(1234,’0000′))为5但LENGTH(TO_CHAR(1234,’FM0000′))为4,因为前导空格(通常使列中的值右对齐)被抑制.如果为负值,则返回字符串的长度为5.格式模型确定返回的数据类型是varchar2(5)以允许符号,即使您知道永远不会有负值 – 格式模型也没有任何方法可以反映这一点.
如果您强制显示符号,也可以使用正值查看它:
SQL> SELECT TO_CHAR(1234, 'FMS0000') FROM DUAL;
TO_CH
-----
+1234
在TO_CHAR调用中,您无法做任何事情.作为RPAD解决方法的替代方法,您可以使用SUBSTR仅获取格式化字符串的最后四个字符:
SQL> SELECT SUBSTR(TO_CHAR(12345, 'FM0000'), -4) FROM DUAL
SUBSTR(TO_CHAR(1
----------------
####
但如果你确实有负值,你就会失去这个标志:
SQL> SELECT SUBSTR(TO_CHAR(-1234, 'FM0000'), -4) FROM DUAL
SUBSTR(TO_CHAR(-
----------------
1234
使用你的RPAD你保持标志但丢失了第四个有效数字:
SQL> SELECT RPAD(TO_CHAR(-1234, 'FM0000'), 4) FROM DUAL
RPAD(TO_CHAR(-12
----------------
-123
这也不好.你可能不必处理负数;但如果您处理的数字大于预期(即,当您只期望< = 9999时,您得到的数字> = 10000)那么我不确定您是否可以确定您不会看到(无效?)在某些时候的负数.这似乎是一个数据问题,而不是格式问题,无论如何在某种程度上. 根据你对Ollie的评论,对于未来的代码维护者来说,另一种可能更明确和更明显的方法是在CASE中拼写出来:
SELECT CASE WHEN n BETWEEN 0 AND 9999 THEN TO_CHAR(n, 'FM0000') ELSE '####' END FROM DUAL
如果你愿意,这也允许你将字符串列保留为null或使用其他一些魔术值而不是####.
另一种修改价值的方法,也可能更清楚,就是使用CAST:
SQL> SELECT CAST(TO_CHAR(12345, 'FM0000') AS VARCHAR2(4)) FROM DUAL;
CAST
----
####
oracle 填入编号,sql – 带填充模式的Oracle to_char格式编号(FM0000)相关推荐
- java list填入table_JavaFX从ObservableList填充TableView
我正在尝试使用ObservableList中的数据填充TableView . 我以前做过这个,但由于某种原因我现在无法让它工作 . 我没有得到任何例外或任何东西,但它只是不添加任何东西到表 . thi ...
- oracle录入excel无sql,Excel数据导入到oracle(待上传的Excel表格;oracle的数据表;PLSQL)...
一.打开pl/sql,如图所示界面,点击菜单栏中的T00LS ODBC Imtorper,打开ODBC Importer选项框 T00LS ODBC Imtorper 二.在Data fromODB ...
- oracle 交叉链接,Oracle里的交叉SQL语句写法-数据库专栏,ORACLE
实例说明 资料表结构(红色为主键)==> 主表:test_part_cost_tab(料号资料表) part_no varchar2(20) part_name varchar2(50) 从 ...
- oracle语法_PG数据库sql语法总结,与Oracle有什么不同?
概述 今天主要对PG数据库的一些基本SQL语句用法做个介绍,做个简单了解,也做备忘! 下面主要用例子来说明. 1.建表语句 create table test (id int8 primary key ...
- python查询sqlserver视图_如题:sqlserver连接Oracle数据库,在sql查询分析器中查询oracle中的视图,根据时间字段查询,SQL语句...
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- sql导入数据以及列表编号设置自动填充
将excel表格直接导入到sql server中 如何利用图形界面设置编号进行自动填充递增 如何利用代码设置编号进行自动填充递增 create table 一个种子(编号 int identity(1 ...
- oracle 创建模式语句,ORACLE基本使用SQL语句以及归档模式的操作
--1.查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tabl ...
- Oracle 复制表结构带索引,oracle复制表的sql语句
oracle复制表的sql语句 如下,表a是数据库中已经存在的表,b是准备根据表a进行复制创建的表: 1.只复制表结构的sql create table b as select * from a wh ...
- c语言如何自动填写验证码,小程序 自带样式的验证码自动填入
一.业务场景:像ios手机上的获取到验证码,,会在键盘上显示,点击,会自动填入到输入框里面:这时候输入框是一个input还好,,他会自动填入,但是现在要求是验证码的6位数字是分开的,原生的一个inpu ...
最新文章
- 看懂SQL Server的查询计划(绝对好文!)
- 当深度学习遇上图: 图神经网络的兴起 | 赠书
- 云服务器怎么设置数据库文件,怎么设置云服务器数据库
- 从零点五开始,做半个不能玩的小游戏(二)
- WebStorm使用ES6
- 中国人数学好,数学思维差?
- IDEA发布新版本,支持禅模式(免打扰)!
- java自动封箱_Java程序员面试,自动封箱/拆箱原理与包装类的缓冲机制你知道么?(转)...
- UncategorizedSQLException异常处理办法
- 关于JSP表单的一些技巧和经验
- java监控网卡流量_流量监控脚本监控网卡
- 正版饥荒服务器怎么弄,饥荒联机版本地服务器如何创建
- 集成电路的设计 —— 晶体管
- matlab双因素模型,matlab双因素方差分析
- 高股息组合与指数基金谁好?
- Pandownload 之后,非它莫属
- ”去他丫的北上广,老子要去成都定居了,Android-Binder机制及AIDL使用
- 容错服务器的性能指标,容错服务器ft2500规格配置.doc
- 汇编、链接、加载的原理
- MATLAB GUI学习———简易计算器
热门文章
- Java web项目报错 Java compiler level does not match the version of the installed Java project facet.
- 小牛想要进大厂,距离拿百万高薪,进入AI行业你还缺哪些?
- SIGIR 2021 | 基于不确定性正则化与迭代网络剪枝的终身情感分类方法
- ResNet才是YYDS!新研究:不用蒸馏、无额外数据,性能还能涨一波
- 60万元奖金 “人脸攻防战”,怎么打?丨独家公开课实录(附baseline)
- 从 Word2Vec 到 BERT
- 用ram实现寄存器堆_Verilog如何实现低功耗设计?
- 牛客题霸 NC6 二叉树的最大路径和
- 《操作系统》实验报告——主存空间的分配与回收
- JAVA——保持cookie登录状态的HttpClient封装工具类