5

Sql-Server 2008 R2 Ghép là Chinese_Simplified_Pinyin_100_CI_AS. Khi tôi sử dụngHai chuỗi so sánh bằng cách sử dụng '=' nhưng không thành công trong 'thích' so sánh

select 1 where N'⑦' = N'7' 

nó ra 1, nhưng khi tôi thay đổi người vận hành like

select 1 where N'⑦' like N'7' 

nó wont ra bất cứ điều gì.

Tại sao hành động của nhà điều hành là like lạ? Tôi đã bỏ lỡ một cái gì đó?

+0

'N'⑦ 'như N'7%'' và 'N'7 'như N'⑦%'' cả hai kết quả trả về. Báo cáo nó trên Connect. Không có vẻ như hành vi mong đợi với tôi. –

+0

liên kết dưới đây có thể giúp bạn. có vẻ như một vấn đề đã biết https://connect.microsoft.com/SQLServer/feedback/details/703959/search-with-like-not-working-as-expected-with-collation-s Sloven-100-ci-as – PraveenVenu

+0

Don Không thấy làm thế nào mà vấn đề kết nối có liên quan (ngoài việc là một vấn đề khác với 'LIKE') –

Trả lời

1

Dường như đây là lỗi. LIKE đối với mẫu không có ký tự đại diện phải luôn trả về cùng một điều mà trả về số =.

người khác có thể nhìn thấy hành vi này bằng cách chạy truy vấn sau đây:

SELECT 
    CASE WHEN N'⑦' COLLATE Chinese_Simplified_Pinyin_100_CI_AS = N'7' THEN 'Y' ELSE 'N' END, 
    CASE WHEN N'⑦' COLLATE Chinese_Simplified_Pinyin_100_CI_AS LIKE N'7' THEN 'Y' ELSE 'N' END 
-- Y N 

Tôi thấy rằng bạn reported it on Microsoft Connect.