在下面的查询中,结果是 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
在下面的查询中,结果是 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
Like 不是对称的,所以左边的 % 符号是按字面意思理解的。也就是说,它们被视为 % 符号而不是模式匹配命令。
帮助页面的语法:
-- Syntax for SQL Server and Azure SQL Database
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]
两侧不一样——只有右侧可以有模式匹配符号。