我有一个包含非空字段的表,我希望从另一个表中填充该字段。麻烦的是对其他表的查询可能会返回 null。当查询返回 null 时,我如何获得一个值(0 就可以)? 我的查询是:
update Packages
set PackageTypeId = (SELECT TOP 1 PackageTypeId
FROM PackageTypes
WHERE Packages.PackageTypeName = PackageTypes.Name
ORDER BY PackageTypeId ASC)
我尝试使用 coalesce,但它仍然失败:
update Packages
set PackageTypeId = (SELECT TOP 1 coalesce(PackageTypeId, 0) as id
FROM PackageTypes
WHERE Packages.PackageTypeName = PackageTypes.Name
ORDER BY PackageTypeId ASC)
有什么想法吗?
最佳答案
update Packages
set PackageTypeId = coalesce((SELECT TOP 1 PackageTypeId FROM PackageTypes
WHERE Packages.PackageTypeName = PackageTypes.Name
ORDER BY PackageTypeId ASC), 0)
关于sql - 如果 select 返回 null,则使用默认值插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643550/