关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL语言 »SQL语句中的嵌套SELECT语句(1)

    SQL语句中的嵌套SELECT语句(1)

    2010-09-03 14:39:00 出处:ITJS
    分享

    SELECT 语句是SQL语句中最重要的语句,接下来的SQL server内容就将为大家介绍SQL中的嵌套SELECT 语句,假如您对此有兴趣,不妨一看,相信会对您有所帮助。

    嵌套SELECT 语句也叫子查询,形如:

    SELECT name FROM bbc WHERE region = (SELECT region FROM bbc WHERE name = 'Brazil')

    一个 SELECT 语句的查询结果可以作为另一个语句的输入值。

    上面的 SQL 语句作用为获得和'Brazil'(巴西)同属一个地区的所有国家。

    子查询不但可以出现在 Where 子句中,也可以出现在 from 子句中,作为一个临时表使用,也可以出现在 select list 中,作为一个字段值来返回。本节我们仅介绍的 Where 子句中的子查询。

    在 Where 子句中使用子查询,有一个在实际使用中容易犯的错在这里说明一下。

    通常,就像上面的例子一样,嵌套的语句总是和一个值进行比较。

    语句 (SELECT region FROM bbc WHERE name = 'Brazil') 应该仅返回一个地区,即 'Americas'. 但假如我们在表中再插入一条地区为欧洲,国家名称为 Brazil 的记录,那会发生什么情况?

    这将会导致语句的运行时错误.因为这个 SQL 语句的语法是正确的,所以数据库引擎就开始执行,但当执行到外部的语句时就出错了。

    因为这时的外部语句就像好像是 SELECT name FROM bbc WHERE region = ('Americas', 'Europe'),这个语句当然报错了。

    那么有没有办法解决这个问题呢,当然有。有一些 SQL 查询条件允许对列表值(即多个值)进行操作。

    例如"IN" 操作符,可以测试某个值是否在一个列表中。

    下面的语句就可以安全的执行而不出错,不管表中有多少条包含Brazils的记录

    以下为引用的内容:

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。