Content

sqlserver 合并列数据的实现(sql合并数据表)硬核推荐

文章摘要

这篇文章主要介绍了如何使用MySQL的WITH子查询来合并查询结果,并对结果中的`eps_code`和`eps_name`字段进行处理。文章详细解释了以下内容: 1. **WITH子查询**:文章通过WITH子查询定义了一个中间结果集`eps_root`,该结果集包含了从`pm_eps`表和自身连接生成的行,并满足特定条件(如`enablestate=2`和特定`pk_eps`值)。 2. **合并查询结果**:文章描述了如何将子查询的结果与外连接生成的结果合并,确保最终结果集包含所有符合条件的记录。 3. **字段处理**:文章还详细说明了如何通过`SELECT`语句对处理后的`eps_code`和`eps_name`字段进行格式化处理,使用`STUFF`函数去除空格并确保字符串的正确性。 4. **排序和格式化**:文章提到,在处理`eps_code`和`eps_name`时,使用排序以避免中文字符的乱序问题,确保输出的整洁性和一致性。 这篇文章的核心内容是通过复杂的查询结构和字段处理,实现对数据库结果的高效管理和展示。

with eps_root(pk_eps, pk_parent, eps_code, eps_name) as ( SELECT pk_eps, pk_parent, eps_code, eps_name FROM pm_eps where enablestate=2 and pk_eps=’1001A11000000003P62E’ union all SELECT e.pk_eps, e.pk_parent, e.eps_code, e.eps_name FROM pm_eps e inner join eps_root r on e.pk_eps=r.pk_parent where e.enablestate=2 ) select distinct eps_code=stuff((select ‘/’ + convert(nvarchar(500), eps_code) from (select distinct eps_code from eps_root) r1 for xml path(”)), 1, 1, ”), –此次需要使用eps_code排序,不然中文的会错乱顺序 eps_name=stuff((select ‘/’ + eps_name from (select top 99.99 PERCENT eps_name from eps_root order by eps_code) r2 for xml path(”)), 1, 1, ”) from eps_root