【问题标题】:Use concat and maintain length of variable使用 concat 并保持变量的长度
【发布时间】:2012-09-25 01:12:16
【问题描述】:

我正在尝试对某些变量使用 concat。这些变量已被声明为字符:

declare v_order_date char(10);
declare v_quantity char(11);
declare v_plant char(100);

我有一个光标,我将它们设置为一些输出。要调用结果,我将 v_msg 设置为

set v_msg := concat( v_msg, '\n', v_order_date, v_quantity, v_plant);

但是,当我选择 v_msg 时得到的结果是:

2012-01-222501008 Creeping Buttercup

但我想在我的选择中保持声明变量的长度,如下所示

2012-01-22  250    1008    Creeping Buttercup

有什么建议吗?谢谢你。

【问题讨论】:

  • 不要将最大列长度与某种“可变长度”混淆。您希望在连接之前将每个值填充到最大列长度。在带有printf 的语言中,您可以使用“简单”格式说明符来执行此操作;我不确定使用 SQL 执行此操作的惯用方式。

标签: mysql concat variable-length


【解决方案1】:

使用 MySQL repeat()char_length()

set v_msg := concat(v_msg, '\n', v_order_date, repeat(' ', 10-char_length(v_order_date)), '\n',  v_quantity, repeat(' ', 11-char_length(v_quantity)), '\n' , v_plant);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2012-05-09
    • 2018-06-29
    相关资源
    最近更新 更多