`
blueskylan
  • 浏览: 98031 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

列换行

    博客分类:
  • db2
 
阅读更多
--方法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
分享到:
评论

相关推荐

    水晶报表--奇偶行不同颜色显示、长文本列换行、字符串连接、分页功能、交叉表、读取图片

    其次,长文本列换行是处理文本溢出问题的重要方法。在报表设计中,当字段内容过长时,水晶报表可以自动换行以适应列宽,保持报表的整洁。这通常需要设置字段属性,例如调整“自动换行”选项,确保文本在指定空间内...

    jsp页面Table自动换行

    3. **Linux命令**:如`ls`用于列出目录内容,`cd`用于切换目录,`grep`进行文本搜索,`vi/vim`编辑文件,`chmod`改变文件权限,`curl`或`wget`下载文件,`netstat`查看网络状态,这些命令在管理JSP应用时都会用到。...

    gridview一般换行,强制换行

    3. **自定义模板列**:对于更复杂的情况,如特定字段需要换行,可以创建自定义模板列,然后在模板中插入适当的HTML元素(如`&lt;p&gt;`或`&lt;div&gt;`),并通过CSS控制其换行行为。 4. **调整列宽**:有时候,问题可能出在...

    设置QTableView的内容自动换行,代理方式

    默认情况下,`QTableView`中的单元格内容是不支持自动换行的,而是将文本截断或者显示省略号。要实现内容自动换行,我们可以利用Qt的代理(Delegate)机制来定制单元格的行为。本文将详细讲解如何通过自定义代理实现...

    layui-table固定列自动换行.txt

    layui数据表格自动换行,当设置固定列时,会出现行高不一致的问题,用户体验不好,只需要在页面中增加几行代码即可解决。

    Sql语句实现表的行列转换,行转列,列转行

    ### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...

    PB怎么样实现数据窗口自动折行显示

    POWERBUILDER数据窗口可能会有大数据字段,text中列出了实现数据窗口自动折行显示的方法。

    Pb中实现自动换行

    - **列数据自动换行**:对于列中数据的自动换行,除了基本的属性设置外,还需要关注字段所在的节(Band)的高度设置,确保其为自动,这样才能配合字段的自动换行功能。 #### 结论 在PB中实现自动换行并非复杂操作,...

    Grafana之Table Panel使用(第十篇) · 语雀1

    - **Time series to columns**:数据按时间分布到不同的列,每一列代表一个特定的度量指标,时间戳作为行。 - **Time series aggregations**:允许对时间序列数据进行聚合操作,如平均(Avg)、最小(Min)、最大(Max)...

    ALV导出excel时窜行

    * 在 Excel 中,使用文本到列功能来分割数据,避免串行。 ALV 导出 Excel 时的串行问题可以通过使用 MHTML 格式导出、处理特殊字符和双引号来避免。同时,我们还需要注意 Excel 的解释规则,以避免引起串行的问题。

    listctrl自动换行.docx

    ### ListCtrl自动换行知识点详解 #### 一、概述 在Windows编程中,`ListCtrl`(列表控件)是一种非常...无论哪种方法,都需要确保正确处理控件的创建、列的插入以及数据的填充等步骤,以确保自动换行功能的正常工作。

    QTableView 标题换行显示和富文本显示 qt5.8

    在默认情况下,`QTableView`的列标题会以单行显示,但有时我们可能需要在有限的空间内展示更多的信息,这时就需要让标题换行。这可以通过自定义`QHeaderView`实现。你可以创建一个继承自`QHeaderView`的子类,重写`...

    JTable自动换行

    // 假设第一列需要自动换行 jTable.getColumnModel().getColumn(0).setCellRenderer(new TableCellTextAreaRenderer()); ``` 这个例子展示了如何通过自定义渲染器实现`JTable`的自动换行功能,同时还能调整字体大小...

    GridView用法总结

    35. DataGridView单元格内文字列换行 70 36. DataGridView单元格DBNull值表示的设定 71 37. DataGridView单元格样式格式化 71 38. DataGridView指定单元格颜色设定 74 39. DataGridView单元格文字字体设置 78 40. ...

    button自适应高度和自动换行

    2. CSS多列布局:使用`column-count`或`column-width`属性可以将按钮内容分到多列显示,达到自动换行的效果。但这种方法在按钮数量不确定的情况下可能不适用。 3. Flexbox换行:设置`.container`的`flex-wrap: wrap...

    FastReport自动换行及行高自适应

    在设计报表时,我们经常遇到需要处理长文本自动换行以及行高自适应的问题,以便于在有限的页面空间内展示更多的信息。本文将详细讲解如何在FastReport中实现这两个功能。 首先,我们要理解自动换行的两种方法: 1....

    C语言读入txt代码

    C语言读入txt代码#include #include int main() { int a[2][3] = {5,2,8,4,9,7}; //比如说你要把它存到一个... //在txt文本中每三列换行,使得各个数据按原来数组形式存放在txt文本中 } fclose(fp); return 0; }

    Eclipse 格式化代码时不换行与自动换行的实现方法

    关于SUN推荐的编码风格,默认是80列换行,这主要是基于历史原因和通用性考虑。过去,由于显示设备和纸张的限制,80列成为了业界通用的标准。然而随着技术的发展和屏幕尺寸的增大,现代开发环境中的这个限制已经没有...

    vb.net DataGridView控件用法合集

    35. DataGridView单元格内文字列换行 36. DataGridView单元格DBNull值表示的设定 37. DataGridView单元格样式格式化 38. DataGridView指定单元格颜色设定 39. DataGridView单元格文字字体设置 40. DataGridView...

Global site tag (gtag.js) - Google Analytics