Reputation: 106
UPDATE UserListColumnData
set UserListColumnValue = (case when Contains(ProductDetailObjects.InnerText, **ProductDetailObjects**.AdminInnerText) then
'Condition True'Else 'Condition False' End)
FROM VariableDataObjectMaping INNER JOIN
UserListColumnData ON VariableDataObjectMaping.UserListColumnID = UserListColumnData.UserListColumnID INNER JOIN
UserListColumns ON UserListColumnData.UserListColumnID=UserListColumns.UserListColumnID INNER JOIN
ProductDetailObjects ON VariableDataObjectMaping.ObjectId = ProductDetailObjects.ObjectID INNER JOIN
ProductDetail ON ProductDetailObjects.ProductDetailID = ProductDetail.ProductDetailID INNER JOIN
Products ON ProductDetail.ProductID = Products.ProductID
WHERE (Products.ProductID = 275)
giving following error after compile.
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'ProductDetailObjects'.
but when i write any string in contain function it works like.
UPDATE UserListColumnData
set UserListColumnValue = (case when Contains(ProductDetailObjects.InnerText, 'aab') then
'Condition True'Else 'Condition False' End)
FROM VariableDataObjectMaping INNER JOIN
UserListColumnData ON VariableDataObjectMaping.UserListColumnID = UserListColumnData.UserListColumnID INNER JOIN
UserListColumns ON UserListColumnData.UserListColumnID=UserListColumns.UserListColumnID INNER JOIN
ProductDetailObjects ON VariableDataObjectMaping.ObjectId = ProductDetailObjects.ObjectID INNER JOIN
ProductDetail ON ProductDetailObjects.ProductDetailID = ProductDetail.ProductDetailID INNER JOIN
Products ON ProductDetail.ProductID = Products.ProductID
WHERE (Products.ProductID = 275)
why it is not working with string column name (ProductDetailObjects.AdminInnerText????)
Upvotes: 0
Views: 93
Reputation: 62494
Add space before ELSE
'Condition True'Else
EDIT:
Update it like this:
CASE
WHEN ProductDetailObjects.InnerText
LIKE '%' + ProductDetailObjects.AdminInnerText + '%'
THEN 'Condition True'
ELSE 'Condition False'
END
Upvotes: 2
Reputation: 175766
You cannot use a field name as the 2nd argument of CONTAINS
, only a literal string or variable; its designed to look for a specific search clause across all values of the column(s) in its first argument.
Upvotes: 1
Reputation: 360602
Possibly this:
'Condition True'Else 'Condition False' End)
^--- missing a space here
Upvotes: 1