我正在编写更新查询以更新一些空白值,如下所示:
UPDATE TA
SET TA.Trust_Desc = TB.Trust_Desc
FROM TB
INNER JOIN TA
ON TA.TrustID = TB.TrustID
AND TA.Trust_Desc like ''
和
UPDATE TA
SET TA.Trust_Desc = TB.Trust_Desc
FROM TB
INNER JOIN TA
ON TA.TrustID = TB.TrustID
AND TA.Trust_Desc = ''
两者都有效。但我想知道哪一个("喜欢"或" =")更适合,为什么?
答案 0 :(得分:2)
AND TA.Trust_Desc like ''
此声明决定TA.Trust_Desc是否与模式''对应。在你的情况下,它没有模式(没有多大意义)。此操作可能非常昂贵,尽可能使用“=”。
AND TA.Trust_Desc = ''
这是将TA.Trust_Desc与字符串''进行比较的语句。它通常操作更快,所以使用这个,它也更有意义。
Pattern是一个字符串,使用%(例如%)作为任何字符串。例如,您可以拥有包含这三个字符串的表。 '你好,世界' '你好世界' '你好人'
“Hello%”等语句列对于“Hello World”和“Hello people”都是正确的 像'%World'这样的语句栏对于'Hello World'和'Hi World'
都是正确的答案 1 :(得分:2)
如果您知道要匹配的确切值,则等于运算符会更好,因为它将允许使用索引。喜欢更可能更慢(除非您使用'abc%'专门搜索,可以使用索引)。
答案 2 :(得分:0)
就像让你与外卡操作员一起工作一样,你可以在你的情况下使用它来做像davyjon%'从davyjon开始获得所有结果,并准确地说出你可以放置的davyjones'你也可以在这种情况下使用=
答案 3 :(得分:0)
=完全匹配
我会添加条件
UPDATE TA
SET TA.Trust_Desc = TB.Trust_Desc
FROM TB
INNER JOIN TA
ON TA.TrustID = TB.TrustID
AND TA.Trust_Desc = ''
AND TB.Trust_Desc <> ''
答案 4 :(得分:0)
LIKE
是logical operator,用于模式匹配字符串。
=
是comparison operator,用于完全匹配相同(或类似)数据类型的任意两项。