Dataphin管道任务从SqlServer抽取数据时,空字符串的转化处理方法
更新时间:
产品名称
Dataphin
产品模块
管道任务
概述
本文描述了当使用管道从SqlServer抽取数据时,SqlServer中存在空字符串的处理方法。
问题描述
当您使用管道从SqlServer抽取数据时,有个字段数据存在有空字符串,想用字段计算给它换掉,希望将空串替换为0。
问题原因
因为管道任务不支持该操作,需要在SqlServer源端进行处理。
解决方案
在SqlServer参考处理方法如下:
采用case when的写法,将空串处理为0。
select case when 字段名='' then '0' else 字段名 end from 表名
将字段名为空的替换成实际字段名,表名替换为实际的表名。
示例:
假如管道任务希望读取SqlServer中的表luyao.tbl_dept的数据,同步到目标端。字段dept_name的数据存在空字符串,需要将空串替换为0
create table luyao.tbl_dept
(
dept_id int primary key,
dept_name nvarchar(100) not null,
dept_address nvarchar(100)
)
insert into luyao.tbl_dept(dept_id,dept_name,dept_address) values (1,'','火星');
insert into luyao.tbl_dept(dept_id,dept_name,dept_address) values (2,'制造部','地球');
insert into luyao.tbl_dept(dept_id,dept_name,dept_address) values (3,'生产部','月球');
方法1:创建中间表,使用中间表进行同步。
select * into luyao.tbl_dept1 from tbl_dept where 1=2;
insert into luyao.tbl_dept1(dept_id,dept_name,dept_address) select dept_id,case when dept_name='' then '0' else dept_name end,dept_address from luyao.tbl_dept;
管道输入配置:
方法二、创建视图,使用视图进行同步。
CREATE view luyao.view_tbl_dept
as
select dept_id,case when dept_name='' then '0' else dept_name end as dept_name,dept_address from luyao.tbl_dept;
管道输入配置:
更多信息
NA
相关文档
NA
反馈
- 本页导读
文档反馈