T-SQL 子查询

2025年3月17日 | 阅读 3 分钟

子查询 与其他 SQL Server 查询一起使用,并嵌入在 WHERE 子句中。子查询用于返回数据,该数据在主查询中用作条件,以限制要检索的数据。

子查询与语句 SELECTINSERTUPDATEDELETE 一起使用,并带有运算符 =<、>、>=、<=、INBETWEEN 等。

子查询 遵循一些规则 -

  • 子查询包含在括号中。
  • 子查询包括 FROM 子句和 SELECT 子句。
  • 可选的 GROUP BY、WHERE 和 HAVING 子句也可以在子查询中使用。
  • COMPUTE 和 FOR BROWSE 子句不包含在子查询中。
  • 当包含 TOP 术语时,我们包含一个 ORDER BY 子句。
  • 我们有子查询最多 32

带有 SELECT 语句的子查询

语法

子查询与 SELECT 语句一起使用。

以下是语法。

示例

参见 EMPLOYEES 表

ID姓名年龄地址工资
1Hamilton23澳大利亚34000
2Warner34英格兰22000
3Martin28中国25000
4Twinkle30土耳其50000
5Tinu32Nepal45000
6Michal31不丹20000
7哈珀20Bangladesh15000

我们借助 SELECT 语句应用子查询。

输出

ID姓名年龄地址工资
1Hamilton23澳大利亚34000
4Twinkle30土耳其50000
5Tinu32Nepal45000

带有 INSERT 语句的子查询

子查询可与 INSERT 语句一起使用。子查询的选定数据可以修改 字符、数字或日期 函数。

语法

INSERT 语句的语法是

示例

此语法用于将完整的 EMPLOYEES 表复制到 EMPLOYEES_BKP

带有 UPDATE 语句的子查询

子查询与 UPDATE 语句一起使用。当我们使用子查询和 UPDATE 语句时,会更新 一个多个 列。

语法

以下是基本语法。

示例

以下命令将 EMPLOYEES 表中 年龄 >=31员工SALARY 乘以 0.25

表中给出了两行

ID姓名年龄地址工资
1Hamilton23澳大利亚34000
2Warner34英格兰22000
3Martin28中国25000
4Twinkle30土耳其50000
5Tinu32Nepal45000
6Michal31不丹20000
7哈珀20Bangladesh15000

带有 DELETE 语句的子查询

子查询与其他上述注释一起与 DELETE 语句一起使用。

语法

语法如下。

示例

该查询删除表中 年龄 大于或等于 31EMPLOYEES 记录。

它有两行,并且 EMPLOYEES 表将具有以下记录。

ID姓名年龄地址工资
1Hamilton23澳大利亚34000
3Martin28中国25000
4Twinkle30土耳其50000
7哈珀20Bangladesh15000

下一篇主题T-SQL 事务