显示列值
回答
select substr(col,1,4)||'-'||substr(col,5) from my_table
如果列t ype是数字,你可以使用MOD操作符。
查询将是:
select int(col/100)||'-'||mod(col,100) from my_table
“INT”:无效的ID – user1213199
@ user1213199 - 使用'trunc()'而不是'int()'。 mod'd值需要填零,或者第一个值显示为“2016-2” –
你也可以使用正则表达式,假设值总是恰好六个数字,用四位数字和两位数字的图案分割值,并使用反向引用以重建它:
with mytable (value) as (
select 201602 from dual
union all select 201732 from dual
union all select 201853 from dual
)
select value, regexp_replace(value, '(\d{4})(\d{2})', '\1-\2') as new_value
from mytable;
VALUE NEW_VALUE
---------- ------------------------------
201602 2016-02
201732 2017-32
201853 2018-53
虽然使用substr可能会更有效,但有很多数据。你隐式地将数字转换为一个字符串和两个;明确地做它并不是真的必要,但可能需要清楚。
如果您可以有更长的值,这将始终将破折号放在第四个字符后面,因此1234567将显示为1234-567。如果您希望最后两位数始终分开,您可以使用'(\d{4})(\d{2})$'
模式,而使用$
定位符;并且,以应付更短的值,你可以从第一分组省略尺寸:
with mytable (value) as (
select 201602 from dual
union all select 201732 from dual
union all select 201853 from dual
union all select 12 from dual
union all select 123 from dual
union all select 1234 from dual
union all select 1234567 from dual
)
select value, regexp_replace(value, '(\d+)(\d{2})$', '\1-\2') as new_value
from mytable;
VALUE NEW_VALUE
---------- ------------------------------
201602 2016-02
201732 2017-32
201853 2018-53
12 12
123 1-23
1234 12-34
1234567 12345-67
使用运营商' || '
这CONCAT您的选择;
例如:
SELECT 'TEST' || '-' || 'MY' || '-' || 'QUERY' FROM DUAL;
CONCAT(string_value1,string_value2 [,string_valueN])
- 1. 显示阵列值
- 2. 显示列值的两倍
- 3. 有列显示组的值
- 4. DataGridComboBoxColumn不显示值列表
- 5. 列行值显示在C#
- 6. 显示列值加入
- 7. 显示数据库列值
- 8. 在列中显示行值
- 9. jqgrid:空数值列值显示空白
- 10. 用D3显示一个只显示唯一值的列表
- 11. achartengine堆图显示当系列值等于零时显示条
- 12. 显示第一个值下拉列表
- 13. Android显示多个列表值
- 14. 从mysql列显示计数值?
- 15. ID列需要显示出与specilal值
- 16. 在列表视图中不显示值
- 17. SQL列显示相同的值
- 18. 列值没有显示出来
- 19. 在AutoGeneratingColumn中更改DataGrid列显示值
- 20. 显示列值primeng数据表
- 21. WPF:如何显示Chart.ColumnSeries的列值?
- 22. SQL结果显示重复的列值
- 23. datagrid列值不显示c#winform
- 24. 列表值不显示更多行
- 25. 使用jdbc从sql显示列值
- 26. 显示在阵列后的元价值
- 27. 从3列显示最小值
- 28. 列中值旁边的显示单位
- 29. 我需要一列显示值的行#
- 30. 显示Select2值不在列表中
如果数据始终具有可以以相同的格式结合子串和串联。 – jarlh
欢迎来到Stack Overflow。您可以使用[代码示例'{}'](https://i.imgur.com/3ppJhiE.png)工具栏按钮格式化源代码 - 这次我已经为您完成了。 –
这是一个字符串还是数值? – dnoeth