Usage of Case When in SQL
In SQL, the "Case When" statement is used to select and judge. During execution, the conditions are first judged, and then corresponding operations are made based on the judgment results; syntax "CASE field WHEN condition 1 THEN operation 1 WHEN Condition 2 THEN operation 2...ELSE operation n END;".
The operating environment of this tutorial: Windows 7 system, Microsoft SQL Server 2016 version, Dell G3 computer.
Usage of case when in SQL
case when is similar to the if else judgment and switch case statement in programming languages. When this statement is executed, the condition is first judged, and then the corresponding operation is made based on the judgment result.
Case has two formats: simple Case function and Case search function.
Simple Case function:
CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘0’ THEN ‘女’ ELSE ‘其他’ END
Case search function:
CASE WHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘0’ THEN ‘女’ ELSE ‘其他’ END
Obviously, the simple Case function is more concise, but it is only suitable for such single fields Single value comparison, and the advantage of the Case search function is that it is applicable to all comparison situations.
There is another issue that needs attention. After the Case function meets a certain condition, the remaining conditions will be automatically ignored. Therefore, even if multiple conditions are met, only the first one will be recognized during execution. a condition.
(PHP Chinese website, there are a lot of free SQL tutorials, everyone is welcome to learn!)
When using CASE WHEN, you can treat it as a logical For anonymous fields, the field value is confirmed based on conditions. When you need to use the field name, you can use as to define an alias. This is still very abstract. Look at the use case of CASE WHEN below to make it clear.
Usage scenarios
1. Known data can be grouped and analyzed in a certain way.
Based on the population data of this country, count the population of Asia and North America. Use the following SQL:
SELECT CASE country WHEN '中国' THEN '亚洲' WHEN '印度' THEN '亚洲' WHEN '日本' THEN '亚洲' WHEN '美国' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END as '洲' , SUM(population) as '人口' FROM test GROUP BY CASE country WHEN '中国' THEN '亚洲' WHEN '印度' THEN '亚洲' WHEN '日本' THEN '亚洲' WHEN '美国' THEN '北美洲' WHEN '加拿大' THEN '北美洲' WHEN '墨西哥' THEN '北美洲' ELSE '其他' END;
The two CASE WHEN here are equivalent to one field, but it is worth mentioning that the THEN value of the second CASE WHEN There is no need to specify which continent it is, it is just used to group records, so the value after THEN can only distinguish these three types of records. GROUP BY can also be written as:
GROUP BY CASE country WHEN '中国' THEN 0 WHEN '印度' THEN 0 WHEN '日本' THEN 0 WHEN '美国' THEN 1 WHEN '加拿大' THEN 1 WHEN '墨西哥' THEN 1 ELSE 2 END;
2. Use a SQL statement Complete groupings under different conditions.
There is the following data:
Use the Case function to complete grouping by country and gender. Use the following SQL:
SELECT country, SUM( CASE WHEN sex = '1' THEN population ELSE 0 END ), --男性人口 SUM( CASE WHEN sex = '2' THEN population ELSE 0 END ) --女性人口 FROM Table_A GROUP BY country;
Get the following results:
Explain the first CASE WHEN:
CASE WHEN sex = '1' THEN population ELSE 0 END
When the sex of the record is 1, the value of this field is the population value of the record, otherwise it is 0, so the male population of a country can be calculated.
For more SQL and other Introduction to Programming tutorials, please continue to pay attention to the PHP Chinese website! !
The above is the detailed content of Usage of Case When in SQL. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



HQL and SQL are compared in the Hibernate framework: HQL (1. Object-oriented syntax, 2. Database-independent queries, 3. Type safety), while SQL directly operates the database (1. Database-independent standards, 2. Complex executable queries and data manipulation).

"Usage of Division Operation in OracleSQL" In OracleSQL, division operation is one of the common mathematical operations. During data query and processing, division operations can help us calculate the ratio between fields or derive the logical relationship between specific values. This article will introduce the usage of division operation in OracleSQL and provide specific code examples. 1. Two ways of division operations in OracleSQL In OracleSQL, division operations can be performed in two different ways.

Oracle and DB2 are two commonly used relational database management systems, each of which has its own unique SQL syntax and characteristics. This article will compare and differ between the SQL syntax of Oracle and DB2, and provide specific code examples. Database connection In Oracle, use the following statement to connect to the database: CONNECTusername/password@database. In DB2, the statement to connect to the database is as follows: CONNECTTOdataba

Interpretation of MyBatis dynamic SQL tags: Detailed explanation of Set tag usage MyBatis is an excellent persistence layer framework. It provides a wealth of dynamic SQL tags and can flexibly construct database operation statements. Among them, the Set tag is used to generate the SET clause in the UPDATE statement, which is very commonly used in update operations. This article will explain in detail the usage of the Set tag in MyBatis and demonstrate its functionality through specific code examples. What is Set tag Set tag is used in MyBati

Classification and Usage Analysis of JSP Comments JSP comments are divided into two types: single-line comments: ending with, only a single line of code can be commented. Multi-line comments: starting with /* and ending with */, you can comment multiple lines of code. Single-line comment example Multi-line comment example/**This is a multi-line comment*Can comment on multiple lines of code*/Usage of JSP comments JSP comments can be used to comment JSP code to make it easier to read

What is Identity in SQL? Specific code examples are needed. In SQL, Identity is a special data type used to generate auto-incrementing numbers. It is often used to uniquely identify each row of data in a table. The Identity column is often used in conjunction with the primary key column to ensure that each record has a unique identifier. This article will detail how to use Identity and some practical code examples. The basic way to use Identity is to use Identit when creating a table.

Solution: 1. Check whether the logged-in user has sufficient permissions to access or operate the database, and ensure that the user has the correct permissions; 2. Check whether the account of the SQL Server service has permission to access the specified file or folder, and ensure that the account Have sufficient permissions to read and write the file or folder; 3. Check whether the specified database file has been opened or locked by other processes, try to close or release the file, and rerun the query; 4. Try as administrator Run Management Studio as etc.

How to use the exit function in C language requires specific code examples. In C language, we often need to terminate the execution of the program early in the program, or exit the program under certain conditions. C language provides the exit() function to implement this function. This article will introduce the usage of exit() function and provide corresponding code examples. The exit() function is a standard library function in C language and is included in the header file. Its function is to terminate the execution of the program, and can take an integer
