SQL在select语句中将列中的文本拆分为几行

SQL在select语句中将列中的文本拆分为几行,sql,sql-server,sp-send-dbmail,dbmail,Sql,Sql Server,Sp Send Dbmail,Dbmail,我正在SQL Server 2014中创建一个作业,最后一步是将第一步的输出发送到我的电子邮件。我已经发送了包含下一个查询结果的电子邮件: select TOP 1 msdb.dbo.agent_datetime(run_date, run_time) as 'RunDateTime', message from sysjobhistory where job_id = 'SOMETHING' and step_id = 1 order by

我正在SQL Server 2014中创建一个作业,最后一步是将第一步的输出发送到我的电子邮件。我已经发送了包含下一个查询结果的电子邮件:

select TOP 1 
    msdb.dbo.agent_datetime(run_date, run_time) as 'RunDateTime', 
    message 
from 
    sysjobhistory 
where 
    job_id = 'SOMETHING' and step_id = 1
order by 
    run_date DESC, run_time DESC
消息
列有一个大文本,它在一行中输出所有内容,如图所示:

我想知道是否有可能把文本分成几行。我可以用分隔符来做。我看到了一些函数,但它们所做的只是将文本分为列和行,我不希望这样

谢谢:)

它看起来像是“Executed:”在字符串中出现了一个字符串,所以我可以从以下内容开始:

SELECT TOP 1
    msdb.dbo.agent_datetime(run_date, run_time) as 'RunDateTime',
    REPLACE(message, 'Executed:', CHAR(13) + 'Executed:') AS message
FROM
    sysjobhistory
WHERE
    job_id = 'SOMETHING' and step_id = 1
ORDER BY
    run_date DESC,
    run_time DESC
它看起来像“Executed:”在字符串中出现了一个字符串,所以我可以从以下内容开始:

SELECT TOP 1
    msdb.dbo.agent_datetime(run_date, run_time) as 'RunDateTime',
    REPLACE(message, 'Executed:', CHAR(13) + 'Executed:') AS message
FROM
    sysjobhistory
WHERE
    job_id = 'SOMETHING' and step_id = 1
ORDER BY
    run_date DESC,
    run_time DESC

出于电子邮件目的,我将这些结果格式化为HTML。但是,这样的工作太详细(至少对我来说)了,无法放入堆栈溢出答案中。您打算如何决定拆分行的位置?我无法按子字符串“Executed”拆分@TomH@GordonLinoff你能给我演示一个简单的格式化方法吗?这样我就可以开始尝试这种方法了。如果是普通文本,你可以用char(13)替换分隔符出于电子邮件目的,我将这些结果格式化为HTML。但是,这样的工作太详细(至少对我来说)了,无法放入堆栈溢出答案中。您打算如何决定拆分行的位置?我无法按子字符串“Executed”拆分@TomH@GordonLinoff你能给我演示一个简单的格式化方法吗?这样我就可以开始尝试这种方法了。如果是普通文本,你可以用char(13)替换分隔符我喜欢
CHAR(13)+CHAR(10)
Yes,这取决于您查看文本的方式,使用13-10可能比使用13更好。我喜欢
CHAR(13)+CHAR(10)
Yes,这取决于您查看文本的方式,使用13-10可能比使用13-10更好。