如何在SSIS派生列中将值为2、4、5的列修改为2=active、4=closd和5=inactv?(SQL Server DB)我希望该列显示值。“活动”而不是“2”“closd”代替“4”用“inactv”代替“5”
7xzttuei1#
您的数据
declare @a table( c varchar(100)) insert into @a (c) values ('2,4,5'); declare @equivalenttable table( id varchar(100),equivalent varchar(100) ) insert into @equivalenttable (id,equivalent) values ('2' ,'active'), ('4' ,'closd'), ('5' ,'inactv');
string_split
Cross apply
join
string_agg
select string_agg(equivalent, ',') within group ( order by id ) c from ( select a1.value from @a CROSS APPLY STRING_SPLIT(c, ',') a1 ) a2 join @equivalenttable e on a2.value = e.id
dbfiddle
px9o7tmv2#
应按如下方式使用conditional operator(?:):
[inputcolumn] == "2" ? "active" : [inputcolumn] == "4" ? "closed" : [inputcolumn] == "5" ? "inactive" : ""
2条答案
按热度按时间7xzttuei1#
您的数据
string_split
和Cross apply
拆分字符串,* 第二次 * 使用join
和等效表,* 第三次 * 使用string_agg
,如下所示:dbfiddle
px9o7tmv2#
应按如下方式使用conditional operator(?:):