簡體   English   中英

在 SQL 服務器中使用 Like 運算符,'Ename like '[AZ]%' 和 'Ename like '[az]%' 意思相同嗎?

[英]Using Like operator in SQL Server does 'Ename like '[A-Z]%' and 'Ename like '[a-z]%' mean same?

對於“第一個字符應該是列中的大寫字母”的問題,我有點困惑。

我嘗試使用 LIKE function 作為select * from emp where mobile like '+%' or mobile like '[0-9]%';

正如我在評論中提到的,這一切都取決於您使用的排序規則。 如果您使用的是不區分大小寫的排序規則,那么LIKE '[AZ]'LIKE '[az]'是同義詞,因為為了比較,字母的大小寫無關緊要。 但是,對於區分大小寫或二進制排序規則,情況並非如此,這兩個表達式將導致不同的結果。

因此,對於 3 個示例排序規則,您可以看到一個返回1 ,而另外兩個返回0

SELECT CASE 'A' COLLATE Latin1_General_CI_AI WHEN 'a' COLLATE Latin1_General_CI_AI THEN 1 ELSE 0 END AS CaseInsensitiveCollation,
       CASE 'A' COLLATE Latin1_General_CS_AI WHEN 'a' COLLATE Latin1_General_CS_AI THEN 1 ELSE 0 END AS CaseSensitiveCollation,
       CASE 'A' COLLATE Latin1_General_BIN WHEN 'a' COLLATE Latin1_General_BIN THEN 1 ELSE 0 END AS BinaryCollation;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM