se Destaca SOMASE no SQL

A função do Microsoft Excel sumif adiciona as células que satisfazem uma condição:

Excel: =SUMIF(<source>, <condition>)

O mesmo comportamento pode ser obtido no SQL usando um case expressão dentro de sum função:

 SQL: SUM(CASE WHEN <condition> THEN <wert> END)

No Excel, <fonte> define arbitrário células—Ax:Ay nos exemplos a seguir. Em SQL, a escolha das linhas é separada da escolha das colunas., The group by and over clauses specify the rows. A coluna é explicitamente usada na expressão<condition> que é colocada na expressãocase.

Excel: =SUMIF(Ax:Ay, 42) SQL: SUM(CASE WHEN A = 42 THEN A END)

A condição é não colocar em aspas—não mesmo quando se usa um operador de comparação:

Excel: =SUMIF(Ax:Ay, "> 42") SQL: SUM(CASE WHEN A > 42 THEN A END)

case expressão de que aceita a diferentes valores de when e then ramos., Isto permite que você faça a mesma coisa que o terceiro argumento da função sumif.

Excel: =SUMIF(Ax:Ay, "> 42", Bx:By) SQL: SUM(CASE WHEN A > 42 THEN B END)

os valores de Texto, no entanto, devem ser submetidos a uma única quotes0:

Excel: =SUMIF(Ax:Ay, "Marvin", Bx:By) SQL: SUM(CASE WHEN A = 'Marvin' THEN B END)

Se ou não de texto SQL comparações ignorar diferenças de maiúsculas e minúsculas depende o chamado agrupamento. Mesmo o padrão varia entre os produtos de banco de dados: MySQL, MariaDB e SQL Server realizam comparações sem distinção de caso por padrão. PostgreSQL, a base de Dados Oracle e SQLite do—per default—take case differences into account.,

Ao contrário da função Excel sumif, SQL não aplica correspondências de caracteres especiais ao comparar cadeias com o sinal de igual (=). Para usar caracteres especiais em SQL, você tem que usar o operador like. like operador utiliza um carácter de sublinhado (_) como um caractere curinga para um único caractere e o sinal de porcentagem (%) como o curinga para qualquer número de caracteres como ? e * no Sobressai sumif.,

Excel: =SUMIFIF(Ax:Ay, "Marvin*", Bx:By) SQL: suM(CASE WHEN A LIKE 'Marvin%' THEN B END)

Sumif ao longo de várias colunas é feito como a soma de uma count função por coluna:

Excel: =SUMIF(Ax:Cy, 42) SQL: SUM(CASE WHEN A = 42 THEN A END) + SUM(CASE WHEN B = 42 THEN B END) + SUM(CASE WHEN C = 42 THEN C END)

A função Sumifs muitas vezes pode ser implementado com um and estado case expressão.,

Excel: =SUMIFS(Bx:By, Ax:Ay, 42, Cx:Cy, 43) SQL: COUNT(CASE WHEN A = 42 AND C = 43 THEN B END)

More about this and related topics:

  • The SQL case expression

  • The filter clause in SQL

  • The SQL null value

  • Excel countif in SQL

Author: admin

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *