--方法1:通过union或union all转换
with tdata as (
select * from table( values('张三', 90.5, 88.5, 95.5, 100), ('李四', 90.5, 88.5, 95.5, 0) ) as t(fname, fmoney8, fmoney9, fmoney10, fmoney11)
)
select fname, fmoney8 as fmoney from tdata
union
select fname, fmoney9 as fmoney from tdata
union
select fname, fmoney10 as fmoney from tdata
union
select fname, fmoney11 as fmoney from tdata
order by fname, fmoney;
--方法2:通过合并、拆分转换
with n(num) as (
values (8) --自定义开始的值
union all
select num + 1 from n where num <= 10 --比最大长度小1
)
select * from (
--将字符串的金额转换成decimal
select fname, num as fnum, cast(fmoney as decimal(12,2) ) as fmoney from (
select fname, num,
length(rtrim(char(num-1))) as "数字的长度",
locate('_'||rtrim(char(num-1))||'_',fmoney)+2+length(rtrim(char(num-1))) as "开始位置", locate('_'||rtrim(char(num))||'_',fmoney) as "结束位置" ,
(locate('_'||rtrim(char(num))||'_',fmoney) - locate('_'||rtrim(char(num-1))||'_',fmoney) - 2 - length(rtrim(char(num-1))) ) as "长度",
--拆分每个金额
substr( fmoney, (locate('_'||rtrim(char(num-1))||'_',fmoney) + 2 + length(rtrim(char(num-1))) ), (locate('_'||rtrim(char(num))||'_',fmoney) - locate('_'||rtrim(char(num-1))||'_',fmoney) - 2 - length(rtrim(char(num-1))) ) ) as fmoney
from table( values('张三', 90.5, 88.5, 95.5, 100), ('李四', 90.5, 88.5, 95.5, 0) ) as t(fname, fmoney8, fmoney9, fmoney10, fmoney11),
--将多个金额合并
--转换成字符串的时候可能要去掉右边的空串:rtrim()
--decimal转换成char的时候左边多出几个0, 处理方法:char(cast(fmoney*100 as bigint)/100)
table( values('_7_' ||char(fmoney8) ||'_8_' ||char(fmoney9) ||'_9_' ||char(fmoney10)||'_10_'||rtrim(char(fmoney11))||'_11_') ) as t2(fmoney),
n
) as temp
) as temp where fmoney <> 0 order by fname, fmoney
- 描述: 转换前的数据
- 大小: 1.3 KB
- 描述: 转换后的数据
- 大小: 1.9 KB
分享到:
相关推荐
其次,长文本列换行是处理文本溢出问题的重要方法。在报表设计中,当字段内容过长时,水晶报表可以自动换行以适应列宽,保持报表的整洁。这通常需要设置字段属性,例如调整“自动换行”选项,确保文本在指定空间内...
3. **Linux命令**:如`ls`用于列出目录内容,`cd`用于切换目录,`grep`进行文本搜索,`vi/vim`编辑文件,`chmod`改变文件权限,`curl`或`wget`下载文件,`netstat`查看网络状态,这些命令在管理JSP应用时都会用到。...
3. **自定义模板列**:对于更复杂的情况,如特定字段需要换行,可以创建自定义模板列,然后在模板中插入适当的HTML元素(如`<p>`或`<div>`),并通过CSS控制其换行行为。 4. **调整列宽**:有时候,问题可能出在...
默认情况下,`QTableView`中的单元格内容是不支持自动换行的,而是将文本截断或者显示省略号。要实现内容自动换行,我们可以利用Qt的代理(Delegate)机制来定制单元格的行为。本文将详细讲解如何通过自定义代理实现...
layui数据表格自动换行,当设置固定列时,会出现行高不一致的问题,用户体验不好,只需要在页面中增加几行代码即可解决。
### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...
POWERBUILDER数据窗口可能会有大数据字段,text中列出了实现数据窗口自动折行显示的方法。
- **列数据自动换行**:对于列中数据的自动换行,除了基本的属性设置外,还需要关注字段所在的节(Band)的高度设置,确保其为自动,这样才能配合字段的自动换行功能。 #### 结论 在PB中实现自动换行并非复杂操作,...
- **Time series to columns**:数据按时间分布到不同的列,每一列代表一个特定的度量指标,时间戳作为行。 - **Time series aggregations**:允许对时间序列数据进行聚合操作,如平均(Avg)、最小(Min)、最大(Max)...
* 在 Excel 中,使用文本到列功能来分割数据,避免串行。 ALV 导出 Excel 时的串行问题可以通过使用 MHTML 格式导出、处理特殊字符和双引号来避免。同时,我们还需要注意 Excel 的解释规则,以避免引起串行的问题。
### ListCtrl自动换行知识点详解 #### 一、概述 在Windows编程中,`ListCtrl`(列表控件)是一种非常...无论哪种方法,都需要确保正确处理控件的创建、列的插入以及数据的填充等步骤,以确保自动换行功能的正常工作。
在默认情况下,`QTableView`的列标题会以单行显示,但有时我们可能需要在有限的空间内展示更多的信息,这时就需要让标题换行。这可以通过自定义`QHeaderView`实现。你可以创建一个继承自`QHeaderView`的子类,重写`...
在设计报表时,我们经常遇到需要处理长文本自动换行以及行高自适应的问题,以便于在有限的页面空间内展示更多的信息。本文将详细讲解如何在FastReport中实现这两个功能。 首先,我们要理解自动换行的两种方法: 1....
// 假设第一列需要自动换行 jTable.getColumnModel().getColumn(0).setCellRenderer(new TableCellTextAreaRenderer()); ``` 这个例子展示了如何通过自定义渲染器实现`JTable`的自动换行功能,同时还能调整字体大小...
2. CSS多列布局:使用`column-count`或`column-width`属性可以将按钮内容分到多列显示,达到自动换行的效果。但这种方法在按钮数量不确定的情况下可能不适用。 3. Flexbox换行:设置`.container`的`flex-wrap: wrap...
35. DataGridView单元格内文字列换行 70 36. DataGridView单元格DBNull值表示的设定 71 37. DataGridView单元格样式格式化 71 38. DataGridView指定单元格颜色设定 74 39. DataGridView单元格文字字体设置 78 40. ...
C语言读入txt代码#include #include int main() { int a[2][3] = {5,2,8,4,9,7}; //比如说你要把它存到一个... //在txt文本中每三列换行,使得各个数据按原来数组形式存放在txt文本中 } fclose(fp); return 0; }
3. **换行逻辑**:如果当前列标题的宽度超过列宽,你需要在适当的位置插入换行符("\n")。这可能需要对字符串进行处理,找到合适的换行位置,确保换行后的标题依然美观且信息完整。 4. **重绘标题**:在修改了标题后...
ASP.NET GridView 中文本内容无法换行(自动换行正常换行) ASP.NET GridView 是 ASP.NET 框架中非常常用的控件之一,用于显示和编辑数据。但是,在使用 GridView 控件时,经常会遇到中文文本内容无法换行的问题。...