因此,我试图在SQL Server中创建一个存储过程,该存储过程发送一封格式化为某种形式的电子邮件。我希望它看起来像:
##date## ##credit##
##debit##
借方和贷方列准确对齐的地方。问题是,我尝试的所有结果都会导致:
##date## ##credit##
##debit##
我尝试过:
declare @lineText nvarchar(max) =
CONCAT(CONCAT(right(replicate(' ',25) + '##date##',25), 'Debit: $##debit##')
, char(13)
, CONCAT(right(replicate(' ',25) + ' ',25), 'Credit: $##credit##'));
和:
declare @lineText nvarchar(max) =
CONCAT(CONCAT(LEFT('##date##' + replicate(' ', 25), 25), 'Debit: $##debit##')
, char(13)
, CONCAT(LEFT('' + replicate(' ', 25), 25), 'Credit: $##credit##'));
和:
declare @lineText nvarchar(max) =
CONCAT(CONCAT(LEFT('##date##' + space(30), 30), 'Debit: $##debit##')
, char(13)
, CONCAT(LEFT('' + space(30), 30), 'Credit: $##credit##'));
和:
declare @lineText nvarchar(max) =
CONCAT(CONCAT(CAST('##date##' as CHAR(30)), 'Debit: $##debit##')
, char(13)
, CONCAT(CAST('' as CHAR(30)), 'Credit: $##credit##'));
没有任何内容使列对齐。如何在贷方和借方列实际对齐的地方创建一个字符串?
我希望底行上的空格与顶行上的日期包含相同数量的空格。
谢谢。
使用空格进行html格式化永远无法正常工作。可能最简单的解决方案是仅使用html表。我想您希望这三列排列整齐。这样的东西很干净。
declare @lineText nvarchar(max) = '<table><tr><td rowspan="2" valign="top">##date##</td><td>Debit:</td><td>$##debit##</td></tr><tr><td>Credit:</td><td>$##credit##</td></tr></table>'