将TAB_A 表为主表,字段TRAN_CODE 数据为”A0083***0001”等,TAB_A表通过字段TRAN_CODE与 TAB_B表中字段DI_CODE关联,但B表中DI_CODE的数据可能存在”B0083***0001”,”b0083***0001”等,需要将TAB_B表中的”b0083***0001”先转化成”B0083***0001”,再将”B0083***0001”转化成”A0083***0001”,这个SQL怎么实现?
时间: 2023-07-23 07:08:01 浏览: 57
课程大作业基于easyx的使用单向链表的数据结构C++源码(带详细注释+exe可执行文件).zip
可以使用以下SQL语句实现:
```
UPDATE TAB_B
SET DI_CODE = REPLACE(DI_CODE, 'b', 'B')
WHERE DI_CODE LIKE 'b0083%';
UPDATE TAB_B
SET DI_CODE = REPLACE(DI_CODE, 'B', 'A')
WHERE DI_CODE LIKE 'B0083%';
SELECT *
FROM TAB_A
INNER JOIN TAB_B
ON TAB_A.TRAN_CODE = TAB_B.DI_CODE;
```
第一条UPDATE语句将TAB_B表中DI_CODE字段中以"b0083"开头的数据中的"b"替换为"B",将其转化为"B0083***0001"格式。
第二条UPDATE语句将TAB_B表中DI_CODE字段中以"B0083"开头的数据中的"B"替换为"A",将其转化为"A0083***0001"格式。
最后一条SELECT语句是将TAB_A表和TAB_B表通过TRAN_CODE和DI_CODE字段关联起来,得到结果。
阅读全文