1

假设我有一个字段 col2 并且值为 caSEINseNSTiVe。在下面运行此查询不会给我 col2=CD。我试过 LIKE 和 LIKE BINARY。

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

该表具有 utf8_bin 的排序规则设置。我无法更改设置。创建报告时我需要切换到 utf8_general_ci,同时保持 utf8_bin 为默认值。

有什么建议么?

4

1 回答 1

0

像这样使用 UPPER 或 LOWER 函数:

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
于 2013-08-28T11:38:00.510 回答