Reputation: 47605
In Microsoft SQL Server,
if the inner select doesn't have a matching criteria, then I need to update Field1 with blank instead of null.
UPDATE Table1
SET Field1=(
SELECT Field2
FROM Table2
WHERE Table2.Field3 = Table1.Field4
)
Upvotes: 0
Views: 1628
Reputation: 2017
The COALESCE() function returns the first non-null expression in a list. You can keep most of your original query, by using COALESCE() to replace any NULL from that query with an empty string.
UPDATE Table1
SET Field1=COALESCE((
SELECT Field2
FROM Table2
WHERE Table2.Field3 = Table1.Field4
), '')
Upvotes: 1
Reputation: 238086
You can reference another table using SQL Server's UPDATE ... FROM ...
syntax:
UPDATE t1
SET field1 = COALESCE(t2.field2, '')
FROM Table1 t1
LEFT JOIN
Table2 t2
ON t2.Field3 = t1.Field4
Upvotes: 3
Reputation: 8337
Try this
UPDATE T1
SET T1.Field1=isnull(T2.Field2,'')
from Table1 T1 left join Table2 T2
ON T2.Field3 = T1.Field4
Upvotes: 1
Reputation: 2021
Please try like this -
UPDATE a
SET a.Field1 = ISNULL(b.Field2,'')
FROM Table1 a
LEFT JOIN Table2 b ON b.Field3 = a.Field4
Upvotes: 3