📜  SQL中根据条件选择多列

📅  最后修改于: 2022-05-13 01:55:17.824000             🧑  作者: Mango

SQL中根据条件选择多列

在我们必须从给定表中选择唯一列的现实世界场景中,现在根据要求选择的列可以是单个或多个。例如:编写一个查询,给出一个组织中 EMPLOYEE 的名称,所以这里我们只需要从那个特定的 EMPLOYEE 表中挑选出名称列。类似地,多列的另一个示例可以是: 编写一个查询,给出在一个组织中工作的所有员工的姓名和薪水。所以在这里我们必须选择 2 列名称和薪水。

上面的例子让我们明白了在学习 SQL 时,列的选择是非常重要的。首先,我们将学习如何从表中选择单列,然后我们将转向多列。

首先,我们创建数据库来执行选择查询

第一步:创建数据库

使用以下 SQL 查询创建一个名为 geeks 的数据库:

CREATE DATABASE geeks;

第二步:使用数据库

USE geeks;

第 3 步:创建表

CREATE TABLE Employee  
(  
EmpID int,  
FirstName varchar(255),  
LastName varchar(255),  
Salary INT  
);

第 4 步:将数据添加到表中

INSERT INTO Employee VALUES(1, 'john' , 'ryther', 10000);
INSERT INTO Employee VALUES(2, 'Alex' , 'Hamilton', 20000);
INSERT INTO Employee VALUES(3, 'Sze' , 'Chauhan' , 10000);
INSERT INTO Employee VALUES(4,'Shiv', 'Chauhan', 50000);

第 5 步:现在我们看到 SQL 中获取期望输出的不同情况。

案例 1:在 SQL 中选择单个列

在 SQL 中,选择任何列是最简单的事情之一,因为您只需键入 SELECT 命令,然后,列名和输出将是所需的列。

句法:

SELECT (Column Name)
FROM (Table Name);

为了更清楚,让我们举一个我们在上面创建的 EMPLOYEE 表的一般示例。现在,我们必须从给定的表中选择列 First_Name。

询问:

SELECT FirstName
FROM EMPLOYEE;

输出:

案例2:根据条件选择单列

现在,我们看看如何获取工资为 10,000 的员工的名字。从表中可以清楚地看出,我们想要的输出应该是:John 和 Sze。要解决此类查询,我们必须在代码中简单地添加 WHERE 子句以及条件,如下面的查询所示:

询问:

SELECT FirstName
FROM EMPLOYEE
WHERE Salary=10000;

输出:

案例 3:在 SQL 中选择多个列

在SQL中选择多列有无条件就像选择单列一样简单,不仅简单,而且一样。继续我们前面的例子,这次我们必须编写一个查询来从员工表中获取名字和姓氏,这意味着我们必须获取 2 列,解决方案很简单,我们必须编写所有这些带有我们要获取的 SELECT 子句的列名称(在我们的例子中是它的名字和姓氏),然后是表名。其语法如下所示

句法:

SELECT column1,column2,column3...
FROM table name;

在我们的示例中,代码如下

询问:

SELECT FirstName,LastName
FROM Employee;

输出:

案例4:选择多列有条件

当我们必须选择多个列以及某些条件时,我们放置一个 WHERE 子句并将我们的条件写入该子句中。选择 WHERE 子句不是强制性的,可以根据所询问的查询有多个选项来放置条件,但大多数条件都满足 WHERE 子句。按照上面的例子,这次我们要设置多个条件。

例如:在 SQL 中编写查询,以选择薪水为 10000 或姓氏为 Chauhan 的员工的名字和姓氏。

对于这个查询,有三件事

  • 选择列名和姓,即SELECT First_Name、Last_Name。
  • 从员工表,即 FROM Employee
  • 现在,条件是棘手的部分,因为有两个条件,让我们一一处理
    • 薪水必须是 10000 即薪水 = 10000
    • 姓氏应该是 Chauhan 即 Last_name='chauhan'

而且,因此我们的查询已经解决,现在我们只需将上述内容以正确的格式放置,如图所示

询问:

SELECT FirstName, LastName
FROM Employee
WHERE Salary=10000 OR LastName='Chauhan';

输出:

我们可以从表中匹配到薪水为 10000 的员工是 john 和 sze,姓氏为 Chauhan 的员工是 sze 和 shiv,这就是我们想要的结果。