SQL在select语句中将列中的文本拆分为几行
我正在SQL Server 2014中创建一个作业,最后一步是将第一步的输出发送到我的电子邮件。我已经发送了包含下一个查询结果的电子邮件: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
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更好。