您需要检查排序规则是否设置为区分大小写:
演示
select
zz.teststring TEST_STRING
,case when zz.teststring like 'JA%' then 'true' else 'false' end [JA%]
,case when zz.teststring like 'J%' then 'true' else 'false' end [J%]
,case when zz.teststring like 'JAA%' then 'true' else 'false' end [JAA%]
from (
select 'jaa' teststring
) zz
对于不区分大小写的情况,请添加COLLATE Latin1_General_CI_AS
select
zz.teststring TEST_STRING
,case when zz.teststring like 'JA%' COLLATE Latin1_General_CI_AS then 'true' else 'false' end [JA%]
,case when zz.teststring like 'J%' COLLATE Latin1_General_CI_AS then 'true' else 'false' end [J%]
,case when zz.teststring like 'JAA%' COLLATE Latin1_General_CI_AS then 'true' else 'false' end [JAA%]
from (
select 'jaa' teststring
) zz
编辑:
但我想知道你是如何得出答案 false, true, true
的:
演示2
select
zz.teststring TEST_STRING
,case when zz.teststring like 'JA%' then 'true' else 'false' end [JA%]
,case when zz.teststring like 'J%' then 'true' else 'false' end [J%]
,case when zz.teststring like 'JAA%' then 'true' else 'false' end [JAA%]
from (
select 'jaa' COLLATE Latin1_General_CS_AS teststring
) zz
COLLATE Danish_Norwegian_CI_AI
演示3
在某些语言中,“aa”被视为一个字符。
COLLATE Danish_Norwegian_CI_AI
,http://sqlfiddle.com/#!6/9eecb7/3195/0 - Lukasz Szozda