2012-12-05 70 views
1

讓我們說我有一個字段col2,它的值爲caSEINsensItiVe。在下面運行此查詢不會給我col2 = CD。我嘗試了LIKE和LIKE BINARY。即使使用COLLATE也不區分大小寫的問題utf8_general_ci

SELECT col1, 
CASE 
    WHEN col2 = 'CASEINSENSITIVE' THEN 'CD' 
    ELSE col2 
END 
FROM Table COLLATE utf8_general_ci 

該表的排序規則設置爲utf8_bin。我不能改變設置。創建報告時,我需要切換到utf8_general_ci,同時將utf8_bin保留爲默認值。

有什麼建議嗎?

回答

0

使用上限或下限funcions像這樣:

SELECT col1, 
CASE 
    WHEN UPPER(col2) = 'CASEINSENSITIVE' THEN 'CD' 
    WHEN UPPER(col2) = 'ANYUPPERTEXT' THEN 'UP' 
    WHEN LOWER(col2) = 'somelowertext' THEN 'LW' 
    WHEN UPPER(col2) = UPPER('anytext that will also be UPPERed') THEN '??' 
    ELSE col2 
END 
FROM Table 
相關問題