0

在下面的查询中,结果是 1。我的疑问是为什么第一个条件不满足?

我认为反之亦然的两种情况应该是相同的,那么第一种情况不应该得到满足吗?

我在这里做错了什么?

询问:

select case when '%G24F_T15%' like '%TK_G24F_T15_DITPG204A15WA%'
then 0
when '%TK_G24F_T15_DITPG204A15WA%' like '%G24F_T15%'
then 1
end as abc
4

1 回答 1

2

Like 不是对称的,所以左边的 % 符号是按字面意思理解的。也就是说,它们被视为 % 符号而不是模式匹配命令。

帮助页面的语法:

-- Syntax for SQL Server and Azure SQL Database  

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]  

两侧不一样——只有右侧可以有模式匹配符号。

于 2020-04-07T08:57:34.580 回答