SQL 将两列值作为两行在SQL中显示

SQL 将两列值作为两行在SQL中显示

在本文中,我们将介绍如何在SQL中将两列的值分别显示为两行。

阅读更多:SQL 教程

示例数据库

为了说明这个问题,我们将使用一个示例数据库和表格。假设我们有一个名为”employees”的表格,包含以下列:

  • employee_id (员工ID)
  • first_name (名字)
  • last_name (姓氏)
  • department (部门)

我们可以使用下面的SQL代码在一个名为”employees”的表格中创建这些列和数据:

CREATE TABLE employees (
  employee_id INT,
  first_name VARCHAR(50),
  last_name VARCHAR(50),
  department VARCHAR(50)
);

INSERT INTO employees (employee_id, first_name, last_name, department)
VALUES (1, 'John', 'Doe', 'Sales');
INSERT INTO employees (employee_id, first_name, last_name, department)
VALUES (2, 'Jane', 'Smith', 'Marketing');
INSERT INTO employees (employee_id, first_name, last_name, department)
VALUES (3, 'David', 'Johnson', 'Finance');
SQL

我们的目标是将”first_name”列和”last_name”列的值分别显示在两行中。

使用UNION ALL

一种实现这个目标的方法是使用UNION ALL操作符。下面是SQL查询示例,演示了如何将”first_name”列和”last_name”列的值分别显示为两行:

SELECT first_name AS name FROM employees
UNION ALL
SELECT last_name AS name FROM employees;
SQL

通过上述查询,我们得到以下结果:

|   name   |
|----------|
|   John   |
|   Jane   |
|   David  |
|   Doe    |
|   Smith  |
|  Johnson |
SQL

可以看到,”first_name”列和”last_name”列的值分别显示为两行。

使用UNPIVOT

另一种方法是使用UNPIVOT语句。UNPIVOT语句用于将列名转换为行数据。以下是使用UNPIVOT语句将”first_name”列和”last_name”列的值分别显示为两行的SQL查询示例:

SELECT name
FROM employees
UNPIVOT 
(
    name FOR column_name IN (first_name, last_name)
) u;
SQL

通过上述查询,我们得到以下结果:

|   name   |
|----------|
|   John   |
|   Jane   |
|   David  |
|   Doe    |
|   Smith  |
|  Johnson |
SQL

同样,”first_name”列和”last_name”列的值分别显示为两行。

使用CASE语句

还有一种方法是使用CASE语句。CASE语句可以根据条件生成不同的结果。以下是使用CASE语句将”first_name”列和”last_name”列的值分别显示为两行的SQL查询示例:

SELECT 
  CASE WHEN row_number = 1 THEN first_name ELSE last_name END AS name
FROM (
  SELECT 
    first_name,
    last_name,
    ROW_NUMBER() OVER (ORDER BY employee_id) AS row_number
  FROM employees
) t;
SQL

通过上述查询,我们得到以下结果:

|   name   |
|----------|
|   John   |
|   Doe    |
|   Jane   |
|   Smith  |
|  David   |
|  Johnson |
SQL

同样,”first_name”列和”last_name”列的值分别显示为两行。

总结

本文介绍了如何在SQL中将两列的值分别显示为两行。我们讨论了使用UNION ALL、UNPIVOT和CASE语句的方法,并提供了示例查询。根据实际需求,您可以选择适合您的情况的方法来实现这个目标。无论您选择哪种方法,关键是理解每种方法的原理和用法,以便正确地使用它们。希望本文对您在SQL中显示两列值为两行的问题有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册