Sql 查询邮件地址多行合并一行,再发送邮件

--创建测试表
use Fly
go
IF OBJECT_ID(‘test‘) IS NOT NULL
DROP TABLE test
CREATE TABLE test(
Id int IDENTITY(1,1) NOT NULL,
Name varchar(50) NULL,
Judge char(1) NULL,
Mail varchar(50) NULL
)
GO

--插入测试数据
INSERT INTO test (
Name ,Judge ,Mail)
SELECT ‘张三‘,‘Y‘,‘[email protected]‘ UNION ALL
SELECT ‘李四‘,‘Y‘,‘[email protected]‘ UNION ALL
SELECT ‘王五‘,‘N‘,‘[email protected]‘
GO

SELECT * FROM test

--查询多行合并
DECLARE
@Maliaddress varchar(8000)
set @Maliaddress = ‘‘‘‘ + STUFF((SELECT ‘;‘ + Mail FROM test WHERE Judge in (‘Y‘) FOR xml path(‘‘)),1,1,‘‘) + ‘‘‘‘
select @Maliaddress as ‘MailAddress‘

exec msdb.dbo.sp_send_dbmail
@profile_name = ‘Fly_Huang‘,
@recipients = @Maliaddress,
@subject = ‘Test电子邮件的主题‘,
@body = ‘Test电子邮件的正文‘,
@body_format = ‘HTML‘

原文地址:http://blog.51cto.com/gongxi/2106062

时间: 2024-11-10 14:10:59

Sql 查询邮件地址多行合并一行,再发送邮件的相关文章

(转)SQL查询案例:多行转换为一行

原文:http://www.cnblogs.com/sammon/archive/2012/05/10/2494362.html 测试表与测试数据 CREATE TABLE TestTitle ( name   VARCHAR(10), titleVARCHAR(10) ); INSERT INTO TestTitle VALUES ('张三', '程序员'); INSERT INTO TestTitle VALUES ('张三', '系统管理员'); INSERT INTO TestTitle

Oracle 多行合并一行 方法

假如有如下表,其中各个i值对应的行数是不定的 Sql代码 SQL> select * from t; I A          D ---------- ---------- ------------------- 1 b          2008-03-27 10:55:42 1 a          2008-03-27 10:55:46 1 d          2008-03-27 10:55:30 2 z          2008-03-27 10:55:55 2 t       

SQL查询语句去除重复行

1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录(有主键id即唯一键) 如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组 select * from table where id in (select min(id) from table group by [去除重复的字段名列表,....])

SQL-xml(查询结果,多行合并成一行)

原始数据: select UserName from com_t_userinfo where username like '测试%' 查询结果: 需求所要结果: select UserName+',' from com_t_userinfo where username like '测试%' for xml path ('') 查询结果:

sql server 多行合并一行

1. 使用函数 go CREATE FUNCTION dbo.fn_Sumtype(@type varchar(50))RETURNS varchar(8000)ASBEGIN DECLARE @values varchar(8000) SET @values = '' SELECT @values = @values + ',' + PRODUCT_TYPE FROM [DataCopy2] WHERE [email protected] RETURN STUFF(@values, 1, 1,

SQL查询包含汉字的行

1.查询字段首位为汉字 SELECT * FROM 表名 WHERE ascii(字段)>127 2.查询字段包含汉字(任意位) SELECT * FROM 表名 WHERE 字段 LIKE '%[吖-座]%' --[吖-座]是中文字符集第一个到最后一个的范围

mysql 和sqlserver的 多行合并成一行

mysql  多行合并: mysql 内置函数 group_concat(exper  SEPARATOR " " ) exper:列明 SEPARATOR " ": 行分隔符 ,这里表示的是使用空格分隔多行 mysql> select * from tmp_02 ; +------------+---------+ | Fclient    | ct      | +------------+---------+ | 安卓       | 1858799 |

SQL - for xml path('') 实现多行合并到一行, 并带有分隔符

docs.microsoft.com 链接:  SQL一个应用场景与FOR XML PATH应用 首先呢!我们在增加一张学生表,列分别为(stuID,sName,hobby),stuID代表学生编号,sName代表学生姓名,hobby列存学生的爱好!那么现在表结构如下: 这时,我们的要求是查询学生表,显示所有学生的爱好的结果集,代码如下: SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby FROM ( SELECT sName, (SELE

oracle多行合并成一行

在mysql有关键字group_concat提供了类似的功能,在oracle中类似功能关键字是wm_concat.比如我有如下查询数据: 但是我希望能够显示成一行查询出来,结果图如下: 关键sql代码形如: select t.sglcheckid,wm_concat(t.salemodulename) from t_item_group_ex t where t.sglcheckid = '000********004' group by t.sglcheckid mysql 多行合并成一行的解