在sql中自定义查询

时间:2015-01-10 17:23:07

标签: mysql sql sql-server

我有这样的查询:

SELECT col1, COUNT(DISTINCT col2) FROM tb GROUP BY col1;

结果是:

col1     COUNT(DISTINCT col2)
----------
A         3
B         4
C         1
D         1

我需要自定义查询,例如当col1为B时,结果应为:

 col1     COUNT(DISTINCT col2)
    ----------
    B         4

我使用了这个查询:

SELECT col1, COUNT(DISTINCT col2) FROM tb WHERE col1="B" GROUP BY col1

但它不返回任何行,它是SQLyog Ultimate- MySQL GUI v11.11。我是怎么了? 感谢。

3 个答案:

答案 0 :(得分:1)

结果是NULL",我猜测查询没有返回任何行。如果WHERE条件过滤掉所有内容,就会发生这种情况。如果" B"不是真的" B",但是有隐藏的字符,例如末尾或开头的空格。试试这个版本的查询:

SELECT col1, COUNT(DISTINCT col2)
FROM tb
WHERE col1 LIKE '%B%'
GROUP BY col1;

更为遥远的可能性是" B"是列名。在这种情况下,使用单引号将解决问题(在MySQL中)。

答案 1 :(得分:0)

使用它:

SELECT col1, COUNT(DISTINCT col2) FROM tb WHERE col1='B' GROUP BY col1

答案 2 :(得分:0)

只需使用:

SELECT col1, COUNT(DISTINCT col2)  FROM tb  WHERE col1 LIKE 'B' GROUP BY col1;