很多数据转换处理操作时,会遇到将0.007007040000转换成0.70%的需求,我们使用Oracle 的SQL 函数 to_char可以实现这种转换。
这个函数用来将DATE或NUMBER数据类型转换成可显示的字符串,格式是to_char(number_type, format_mask)。
格式'999.99',9表示对应的某一个指定位数的值,如果是值是0则忽略不显示,如果指定位数没有值,则以空格表示。
格式'0990.990',0表示对应的某一个指定位数的值,如果是值是0则显示为0,如果是没有值也显示为0。
格式'FM990.90',FM表示将显示出来的字符串定位数没有值而显示的空格清理掉,作用和ltrim类似。
(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1735953
)
SQL> select to_char(12304.560,'999.99') from dual;
TO_CHAR(12304.560,'999.99')
---------------------------
#######
SQL> select to_char(104.560,'999.99') from dual;
TO_CHAR(104.560,'999.99')
-------------------------
104.56
SQL> select to_char(104.560,'99999.99') from dual;
TO_CHAR(104.560,'99999.99')
---------------------------
104.56
SQL> select to_char(104.560,'99999.990') from dual;
TO_CHAR(104.560,'99999.990')
----------------------------
104.560
SQL> select to_char(104.560,'0099.990') from dual;
TO_CHAR(104.560,'0099.990')
---------------------------
0104.560
SQL>
SQL> select to_char(round(0.007007040000, 4) * 100, 'FM99999999990.90') || '%' as aa,
2 length(to_char(round(0.007007040000, 4) * 100, 'FM99999999990.90') || '%') as bb
3 from dual;
AA BB
---------------- ----------
0.70% 5
SQL>
SQL> select to_char(round(0.007007040000, 4) * 100, '99999999990.90') || '%' as aa,
2 length(to_char(round(0.007007040000, 4) * 100, '99999999990.90') || '%') as bb
3 from dual;
AA BB
---------------- ----------
0.70% 16
这是to_char将数字转换成字符串的常见操作功能,还有其他一些格式,见to_char(numeric)的格式模板。
模板 描述
9 带有指定位数的值
0 前导零的值
. (句点) 小数点
, (逗号) 分组(千)分隔符
PR 尖括号内负值
S 带负号的负值(使用本地化)
L 货币符号(使用本地化)
D 小数点(使用本地化)
G 分组分隔符(使用本地化)
MI 在指明的位置的负号(如果数字 < 0)
PL 在指明的位置的正号(如果数字 > 0)
SG 在指明的位置的正/负号
RN 罗马数字(输入在 1 和 3999 之间)
TH or th 转换成序数
V 移动 n 位(小数)(参阅注解)
EEEE 科学记数。现在不支持。
它还能将时间格式的数据转换成字符串,只是格式更加复杂。
分享到:
相关推荐
TO_CHAR 函数用于将日期或数值转换为字符。 - **语法**: ```sql TO_CHAR(date_or_numeric_expr, format_mask) ``` - **示例**: ```sql TO_CHAR(r.f_month, '09') ``` 此处将`f_month`字段中的月份转换为两...
- **转换函数**:如 `TO_CHAR`, `TO_DATE`, `TO_NUMBER` 等。 - **聚合函数**:如 `SUM`, `AVG`, `COUNT` 等。 - **条件判断函数**:如 `CASE`, `DECODE`, `NULLIF` 等。 - **系统函数**:如 `USER`, `SYS_GUID`, `...
- `IntToHex`函数可以将整数转换为16进制字符串,如`IntToHex(number, length)`,其中`length`是期望的16进制字符串长度,不足部分用零填充。 3. **16进制字符串转字节数组**: - 这通常涉及字符串的分割和逐个...
5. **保留小数位数**:使用`DecimalFormat`类或`String.format()`方法可以控制浮点数的显示精度,例如`String.format("%.2f", number)`将保留两位小数。 6. **字符串分隔**:`replace()`和`replaceAll()`都能用于...
- `SELECT TO_CHAR(SYSDATE,'YYYYMMDDHH24:MI:SS') FROM DUAL`:将系统当前日期转换为自定义的字符串格式。 #### 2. **日期计算** - `SELECT TO_DATE('20120404','YYYYMMDD')+3*7 FROM DUAL`:在日期基础上加减...
最后,C#还支持十六进制数的处理,可以使用`int.Parse("1A", System.Globalization.NumberStyles.HexNumber)`将十六进制字符串转换为整数,或者`string.Format("{0:X}", number)`将整数转换为十六进制字符串。...
### .NET & VS & SQL Server 编程小技巧经验总结 #### 一、C#编程技巧 ##### EF中视图建模 在使用Entity Framework (EF) 进行数据库建模时,如果需要将数据库中的视图映射到实体类中,可能会遇到一个问题:当视图...
### C# .NET项目开发中的小技巧 #### 1. 使用DataGrid显示数据表 在C# WinForms开发中,`DataGrid`是显示表格数据的一个非常实用的控件。通过创建`DataGridTableStyle`实例,并设置其`MappingName`属性来关联到数据...
- **char to number**: - 示例:`char c = '9'; int num = c - '0';` - 结果:`num` 变为 `9`。 - **number to QString**: - 示例:`int num = 9; QString str = QString::number(num);` - 结果:`str` 变为 `...
cJSON库的核心是JSON对象的表示,它包括了JSON的几种基本类型:字符串(string)、数字(number)、布尔值(boolean)、数组(array)、对象(object)和null。这些类型在cJSON中都有对应的结构体,如`cJSON_String...
- `TO_NUMBER(string)`:将字符串转换为数字。 - **其它函数**: - `GREATEST(value1, value2, ...)`: 返回最大值。 - `LEAST(value1, value2, ...)`: 返回最小值。 - `USER`: 返回当前用户的名称。 #### 第五...
char *int_to_string(int num, char *str) { if (num == 0) { *str = '0'; str++; } if (num ) { *str = '-'; str++; num = -num; } while (num > 0) { *str = (num % 10) + '0'; str++; num /= 10; }...
本文将围绕C++中的字符串处理技巧进行深入探讨,并结合具体的代码示例帮助读者更好地理解和应用这些技巧。 ##### 1. 字符大小写转换 在C++标准库中,并没有直接提供字符串整体大小写转换的功能。但是,通过利用STL...
- `TO_NUMBER(string)`:将字符串转换为数字。 #### 三、从多个表中提取数据 ##### 连接的概念 - **连接**是指将来自两个或多个表的行组合在一起的过程。 - **主要类型**: - 等值连接 - 非等值连接 - 外连接 ...
在SQL查询中,可以使用to_date函数去掉时间部分,例如对于Oracle:`to_date(日期字段, 'yyyy-mm-dd')`。 12. 合并数据库表的两个列: 在DataTable中添加一个新的列,使用Expression属性合并两个列,如Oracle:`...
- 运行`./upper_to_lower.sh abcd`将输出:`[# no upper number:] abcd` #### C语言实现 **C语言代码示例:** ```c #include #include int haveuppernumber(char *p) { char *q = p; for (; *q != '\0'; q+...
### JavaScript中的小技巧详解 #### 1. 使用`document.write("")` `document.write()`方法用于在文档中写入文本或HTML。此方法通常用于动态创建HTML文档内容。 **示例:** ```javascript document.write("<h1>...
【标题】:全面掌握CString操作 【描述】:这篇指南详细介绍了如何在C++编程中高效使用CString类,包括字符串连接、格式化、不同类型...通过学习这些技巧,可以提高代码的可读性和维护性,并降低潜在的内存管理错误。
formatted.Format(_T("The number is %d"), num); ``` Format()方法会自动管理内存,避免了手动计算缓冲区大小的困扰。 3. 字符串与数值之间的转换: - 将int转换为CString: ``` int value = 42; CString ...