[Notas do estudo SQL] Julgamento da atribuição de espaço-tempo

Designação de espaço de tempo SQL

Quando o SQL faz consultas estatísticas, geralmente é necessário contar o número total de outro campo após o agrupamento. Geralmente, esse é o caso em que o resultado de COUNT (campo a ser contado) é NULL. Se você enviar diretamente o resultado NULL ao chamador, será difícil lidar com a outra parte. Portanto, precisamos julgar a saída: se estiver vazia, passe 0.

Para conseguir essa função, você pode usar a função ISNULL.

Método de chamada de função

ISNULL (o valor que precisa ser considerado vazio e o valor que se espera que seja devolvido)

Exemplo de chamada

Classe da tabela (AID, nome da classe, nome do professor da turma)

AJUDA Nome Diretor
1 Grade One ……
2 Grau um e grau dois ……
3 Grade One Three ……
4 Primeira classe do ensino médio ……

Aluno da tabela (AID, nome do aluno, classe)

AJUDA Nome ClassAID
1 Zhang San 1
2 Li Si 1
3 Wang Wu 1
4 Zhang San 2
5 Li Si 2
6 Wang Wu 2
7 Zhao Liu 2

Obviamente, o campo ClassAID da tabela Student é referenciado no campo AID da tabela Class para indicar a qual classe esse aluno pertence.

--这是一个统计查询:查询各个班都分别有多少学生
SELECT
	 [ClassAID] = C.AID
	,[StudentNumber] = COUNT(S.AID)
FROM Class AS C
JOIN Student AS S ON S.ClassAID = C.AID
GROUP BY C.AID
--上面这个查询会出现一个问题,倘若有一个班级没有任何学生,那么那个班级的‘学生数’就会被统计为NULL

O resultado será assim:

ClassAID Número de estudante
1 3
2 4
3 NULO
4 NULO

Espero exibir 0 em vez de NULL quando o resultado estiver vazio.O
código é o seguinte:

--这是一个统计查询:查询各个班都分别有多少学生
SELECT
	 [ClassAID] = C.AID
	,[StudentNumber] = ISNULL(COUNT(S.AID),0)
FROM Class AS C
JOIN Student AS S ON S.ClassAID = C.AID
GROUP BY C.AID

Então, o resultado é este:

ClassAID Número de estudante
1 3
2 4
3 0 0
4 0 0
Publicado 23 artigos originais · Gosto1 · Visita mais de 20.000

Acho que você gosta

Origin blog.csdn.net/shenjie_xsj/article/details/105215612
Recomendado
Clasificación