如何 return 来自 SQL 的 NVCHAR 字符串格式正确

How to return an NVCHAR string from SQL formatted correctly

在我们的业务中,我们有一个程序,我们可以 return 合并系统生成的电子邮件和信件的字段。

我正在尝试使用 NVCHAR 用光标编写一个,但发票列表的输出有问题,创建字符串的部分是:

BEGIN
    IF ( @Schedule <> '' )
        BEGIN
            SET @Schedule = @Schedule + CHAR(10) + CHAR(13);
        END;

    SET @Schedule = @Schedule + CONVERT(VARCHAR(10), @InvoiceDate, 103)
        + ' | ' + CONVERT(VARCHAR(50), @InvoiceNumber) + CHAR(9) + ' | '
        + CONVERT(VARCHAR(600), @InvoiceDescrip) + CHAR(9) + ' | '
        + CONVERT(VARCHAR(10), @InvoiceAmount) + CHAR(13);
END;

现在因为发票编号和描述可以有不同的长度,它给合并字段的输出如下:

09/06/2014 | 1568        | Item 248              | 100.00
01/08/2014 | 123         | Item 23               | 100.00 
18/08/2014 | Inv #12345  | Warehouse machine     | 2000.00

我正在寻找的输出如下:

09/06/2014 | 1568        | Item 248              | 100.00
01/08/2014 | 123         | Item 23               | 100.00
18/08/2014 | Inv #12345  | Warehouse machine     | 2000.00

希望这个问题是有道理的,我在别处搜索过但似乎找不到与此相关的内容。

感谢任何人对此提供的帮助。

SET @Schedule = @Schedule + CONVERT(VARCHAR(10), @InvoiceDate, 103)
        + ' | ' + CONVERT(CHAR(50), @InvoiceNumber) + CHAR(9) + ' | '
        + CONVERT(CHAR(600), @InvoiceDescrip) + CHAR(9) + ' | '
        + CONVERT(CHAR(10), @InvoiceAmount) + CHAR(13);

将 varchar 更改为您认为数据的最大长度的 char。 Char 将确保数据具有固定长度。