您好我想通过连接3列值更新表列,但问题是如果3列中的任何一列具有空值,我该如何停止更新。
我的查询在下面给出了我想要更新ind_ref 123的记录但是如果我连接的3列的任何值为null,则它不应该更新display_name列。我怎样才能实现它?
update individual_loc
Set individual_loc.display_name=individual_loc.address1+','+INDIVIDUAL_LOCATION.TOWN+','+INDIVIDUAL_LOCATION.COUNTY
where individual_loc.ind_ref=123
答案 0 :(得分:3)
只需在NULL
子句中添加WHERE
支票即可。
UPDATE individual_loc
SET display_name = address1 + ',' + TOWN + ',' + COUNTY
WHERE ind_ref = 123 AND address1 IS NOT NULL AND TOWN IS NOT NULL AND COUNTY IS NOT NULL
答案 1 :(得分:2)
public ContainerTag addCombo(UserOption userOption, int selectedValue)
{
return div(
label(userOption.getLabel().getMsg())
.withTitle(userOption.getTooltip().getMsg()),
select(
each(Arrays.asList(RenameFileOptions.values()),
next ->
iffElse(next.ordinal()==selectedValue,
option(next.name()).attr(Html.SELECTED, Html.SELECTED).withValue(String.valueOf(next.ordinal())),
option(next.name()).withValue(String.valueOf(next.ordinal()))
)
))
.withName(userOption.getOption())
);
}
答案 2 :(得分:1)
试试这个
update individual_loc
Set individual_loc.display_name=individual_loc.address1+','+
individual_loc.TOWN+','+individual_loc.COUNTY
where individual_loc.ind_ref=123
AND address1 is not null
AND town is not null
AND county is not null
基本上,只有在字段不为空时才执行更新
答案 3 :(得分:0)
一种方法是使用COALESCE:
UPDATE individual_loc
SET individual_loc.display_name=COALESCE(individual_loc.address1+','+INDIVIDUAL_LOCATION.TOWN+','+INDIVIDUAL_LOCATION.COUNTY, individual_loc.display_name)
where individual_loc.ind_ref=123;
答案 4 :(得分:0)
您还可以使用coalesce()
函数
update individual_loc
Set individual_loc.display_name=individual_loc.address1+','+INDIVIDUAL_LOCATION.TOWN+','+INDIVIDUAL_LOCATION.COUNTY
where individual_loc.ind_ref=123
and coalesce(individual_loc.address1+','+INDIVIDUAL_LOCATION.TOWN+','+INDIVIDUAL_LOCATION.COUNTY, 0) <> 0
答案 5 :(得分:0)
如果你想避免空问题,只需检查isnull(individual_loc.address1,'')
如果还有别的尝试: IIF((isnull(address1,'')=''OR isnull(TOWN,'')=''或isnull(COUNTY,'')=''),UPDATE STATEMENT,PRINT'False')