Reputation: 2449
I am trying to add another column using LEFT JOIN
after ON
as I want to look join multiple columns
So I tried using some thing like this
UPDATE [toolDB].[dbo].[esn_missing_in_DF_umts]
SET [toolDB].[dbo].[esn_missing_in_DF_umts].[target_rnc] =
(CASE
WHEN ESN_M_UMTS.target_vendor = 'HUA'
THEN umts_carrier.rnc
ELSE SHO.ucell_rnc
END)
FROM [toolDB].[dbo].[esn_missing_in_DF_umts] ESN_M_UMTS
LEFT JOIN [toolDB].[dbo].[df_umts_carrier] umts_carrier ON ESN_M_UMTS.n_cell_name = umts_carrier.cell_name_umts
LEFT JOIN [toolDB].[dbo].[esn_umts_intra_sho] SHO ON ESN_M_UMTS.n_cell_name = SHO.[urelation] OR SHO.ucell
and I get this error:
Msg 4145, Level 15, State 1, Line 5
An expression of non-boolean type specified in a context where a condition is expected, near 'ucell'.
The error must be in this part:
LEFT JOIN [toolDB].[dbo].[esn_umts_intra_sho] SHO ON ESN_M_UMTS.n_cell_name = SHO.[urelation] OR SHO.ucell
Does anyone have an idea how to solve this?
Upvotes: 0
Views: 474
Reputation: 222602
This is not valid T-SQL (or at least, will not do what you want):
ON ESN_M_UMTS.n_cell_name = SHO.[urelation] OR SHO.ucell
Ths treats OR SHO.ucell
as a separate condition, so the database tries to evaluate it in bolean context, which fails here.
You can use IN
instead:
ON ESN_M_UMTS.n_cell_name IN (SHO.[urelation], SHO.ucell)
Upvotes: 3