在我们的业务中,我们有一个程序,通过函数,我们可以返回系统生成的电子邮件和字母的合并字段。
我正在尝试使用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
希望这个问题有道理,我在其他地方搜索过,但似乎找不到与此有关的东西。
感谢任何人可以提供的任何帮助。
答案 0 :(得分:2)
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将确保数据具有固定长度。