【达梦】SQL相同属性的不同值转换为一个字符串

SQL相同属性的不同值转换为一个字符串
函数:wm_concat()
示例:

SELECT dual.hwmc,count(dual.jydbh) zjbgzs ,wm_concat(dual.jyjl) zjjg
        from
            (
                select bdc.hwmc,sh.jydbh,case when sh.jyjl == 1 then '合格' when sh.jyjl == 0 then '不合格' end  jyjl
                from "SZFMIMP"."T_STOCK_IN_CHECK" sh
                inner join  "SZFMIMP"."BASIC_DATA_CARGO" bdc on sh.hwdm = bdc.hwdm
                union all
                select
                bdc.hwmc,qi.ZJBGDBH as jydbh,
                case when INSTRB(qi.zlzbjgpd,'不达标',1,1)>0 then '不合格'
                     when INSTRB(qi.zlzbjgpd,'不达标',1,1)=0 then '合格'
                     end  jyjl
                from "SZFMIMP"."T_QUALITY_INSPECTION" qi
                inner join  "SZFMIMP"."BASIC_DATA_CARGO" bdc on qi.hwbm = bdc.hwdm
            ) DUAL
        group by dual.hwmc
        order by count(dual.jydbh) desc

执行结果:
在这里插入图片描述
可以看出该函数把,符合条件的所有值转换为一个字符串。
通俗点讲:一个班有多个同名的同学,显示的时候不想每个同学都展示一条数据,这个时候就可以用这个函数,让所有同名的同学展示在一起组成一个字符串返回。(具体使用请按照自己的业务理解后合理使用)

—— ——个人笔记仅供参考

### MySQL达梦数据库字段类型对比及迁移兼容性分析 在进行 MySQL达梦数据库的数据迁移过程中,字段类型的兼容性和映射是一个重要的考虑因素。以下是两者之间的主要差异及其解决方案: #### 1. 基本数据类型支持 MySQL达梦数据库都提供了常见的基本数据类型,但在某些细节上存在不一致的情况。例如: - **整数类型**:两者的 `TINYINT`、`SMALLINT`、`MEDIUMINT`、`INT` 和 `BIGINT` 类型定义相似,但需要注意的是,在达梦数据库中可能不存在 `UNSIGNED` 属性的支持[^1]。 - **浮点数类型**:`FLOAT` 和 `DOUBLE` 在两种数据库中的实现方式相同,但由于底层存储机制的不同,可能会导致精度上的细微差别。 #### 2. 字符串类型 字符串类型的处理也存在一定差异: - **VARCHAR/NVARCHAR**:MySQL 中的 `VARCHAR(n)` 支持的最大长度为 65,535 字节,而达梦数据库则允许更大的字符集范围。如果迁移到达梦时发现超出其默认限制,则需手动调整字段大小[^2]。 - **TEXT/BLOB**:对于大对象存储(如 TEXT 或 BLOB),建议检查目标表结构是否能够容纳源系统的实际需求。 #### 3. 时间日期类型 时间戳和日期格式方面也有区别: - 在 MySQL 中常用的 `DATETIME(6)` 提供微秒级精确度;然而,部分版本的达梦并不完全支持这种高分辨率的时间表示法。因此,应确认业务逻辑能否接受较低粒度的时间记录[^3]。 #### 4. 特殊情况下的转换策略 当遇到无法直接对应的目标类型时,可以采取如下措施来解决问题: - 如果原生映射不可行,则尝试通过应用程序层面上做必要的预处理工作; - 修改 SQL DDL/DML 脚本来适应新平台的要求——比如把布尔表达式替换掉等操作。 ```sql -- 示例代码展示如何将 MySQL 的 def_flag=false 替换为 DM8 友好的形式 UPDATE my_table SET def_flag = CASE WHEN def_flag='false' THEN '0' ELSE '1' END; ``` 以上就是关于 MySQL达梦迁移过程里涉及到的一些典型字段匹配难题及相关应对办法总结说明文档内容摘录整理而成的结果呈现给各位读者朋友们参考学习之用!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值