Sql server 什么';这个sql查询有什么问题?
编译后出现以下错误Sql server 什么';这个sql查询有什么问题?,sql-server,Sql Server,编译后出现以下错误 UPDATE UserListColumnData set UserListColumnValue = (case when Contains(ProductDetailObjects.InnerText, **ProductDetailObjects**.AdminInnerText) then 'Condition True'Else 'Condition False' End) FROM VariableDataObjectMaping INNER
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)
但是,当我在contain函数中编写任何字符串时,它的工作方式就像
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'ProductDetailObjects'.
为什么不使用字符串列名(ProductDetailObjects.AdminInnerText???)可能是这样的:
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)
在其他之前添加空间
'Condition True'Else 'Condition False' End)
^--- missing a space here
编辑:
更新如下:
案例
当ProductDetailObjects.InnerText
类似“%”+ProductDetailObjects.AdminInnerText+“%”
然后“条件为真”
否则“条件为假”
结束
只能在包含中使用常量作为搜索查询不能将字段名用作包含的第二个参数,只能使用文字字符串或变量;它的设计目的是在第一个参数中跨列的所有值查找特定的搜索子句。为什么表名ProductDetailObjects.AdminInnerText周围有星号?我提到我自己是因为这是查询编译产生错误的地方。这不是空间问题。当我将ProductDetailObject.AdminInnerText替换为某个字符串时,它将工作,否则它将给出一个错误。搜索子句看起来像什么,它们必须是FTS子句吗?
'Condition True'Else