我如何编写 SQL concat 函数?

Posted

技术标签:

【中文标题】我如何编写 SQL concat 函数?【英文标题】:Ho do i write the SQL concat function? 【发布时间】:2020-09-18 20:01:04 【问题描述】:

大家好:我有一个列名如下的表格:

Select * from Table

第 1 列: 加州地区报告

第 2 列: 加州海滩计划

第 3 列: 约翰·多伊

这是我的查询:但它给了我一个错误:

Select concat('Good Morning',' ',Column3, ':',

'Attached please find '+datename(month, dateadd(month,-1,getdate()))+' +'Year(Getdate()+' report for review. Please direct reporting questions to Dev@gmail.com.'

,'Report Name:','+Column1+'

,'Program name:','+Column2+',

'Kindest regards,
California Team
Director of Team') as FullMessage from Table

下面是我需要这个专栏的格式:RESULT

早安约翰·多伊:

请在附件中找到 2020 年 8 月的报告以供审核。请直接 向 Dev@gmail.com 报告问题。'

报告名称:加州地区报告

项目名称:加州海滩项目

最诚挚的问候,

加州队

团队总监

【问题讨论】:

提取信息并在代码中构建您的消息会更好吗?您使用什么方式发送电子邮件? 我将在 s-s-rS 数据驱动订阅中使用它来发送电子邮件。 【参考方案1】:

试试这个方法:

Select FullMessage = 'Good Morning ' + Column3 + ':' + CHAR (13) + CHAR (10) +
'Attached please find the '+ datename(month, dateadd(month,-1,getdate())) + ' ' + convert(varchar(4), Year(Getdate())) + ' report for review. Please direct reporting questions to Dev@gmail.com.' + CHAR (13) + CHAR (10) +
'Report Name: ' + Column1 + CHAR (13) + CHAR (10) +
'Program name: ' + Column2 + CHAR (13) + CHAR (10) +
'Kindest regards, ' + CHAR (13) + CHAR (10) +
'California Team' + CHAR (13) + CHAR (10) +
'Director of Team' 
from Table

输出:

【讨论】:

这行得通,如何创建回车和换行? char (13) + char(10) 应该是这样做的,但我需要一个从报告名称到最亲切的问候的制表符空间。 @user9273914 char(9) = TAB 字符,这里是所有字符代码的表格:ascii-code.com【参考方案2】:

在 SQL-Server 中,您可以使用 + 运算符连接字符串,就像您在查询的后面部分中所做的那样。您可以在整个过程中使用它:

SELECT 'Good Morning ' + Column3 + ':' -- rest of your query....

【讨论】:

以上是关于我如何编写 SQL concat 函数?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 中的自定义聚合函数 (concat)

SQL语句编写注意事项

ACCESS2003中如何实现CONCAT函数功能

如何在sql的执行键中编写函数

使用带有乘数函数的数据适配器编写更新 SQL 查询

函数编写 SQL 如何给记录加序号