我有一个很大的表,在一列中有一些字符串,如TypeA
、TypeB
等。我想使用该列使用CASE
运算符进行查询
CASE WHEN col1 = 'TypeA' Then '25'
WHEN col1 = 'TypeB' Then '28'
...
WHEN col1 = '????' Then '15'
END
但我不知道该列有多少个唯一值,它们是什么(它们是最多3个单词的单词/句子(。我知道我可以通过找到那些独特的价值
SELECT DISTINCT col1 FROM table1
或
SELECT col1 FROM table1 GROUP BY col1
但由于表的大小,它正在无休止地执行
我能以有效的方式做吗?我想从1列中找到所有唯一的值
似乎应该更好地创建一个具有唯一值的表。然后您可以加入该表,并且值域是开放的。然后,您可以将该字段替换为对值表的引用。
由于原始表上的col1
DISTINCT上似乎不存在索引,因此速度较慢。在值表的col1
上有一个索引/主键。