精华内容
下载资源
问答
  • where a.deptno in (select b.deptno from emp b order by b.deptno) --在where后面报错: ORA-00907: missing right parenthesis ; --from后面的视图是内联视图,可以使用order by --如上报错语句再嵌套一层...

    select a.*

    from dept a

    where a.deptno in (select b.deptno from emp b order by b.deptno)  --在where后面报错: ORA-00907: missing right parenthesis

    ;

     

    --from后面的视图是内联视图,可以使用order by

    --如上报错语句再嵌套一层变成from后面的内联视图就好了

    --例如:

    select a.*
    from dept a
    where a.deptno in (select b.deptno
                              from (select c.deptno from emp c order by c.deptno) b

              );

     

    转载于:https://www.cnblogs.com/sisier/p/4699350.html

    展开全文
  • LINQ查询表达式---------where子句 where子句用在查询表达式,用于指定将在查询... 一个查询表达式可以包含多个where子句,一个子句可以包含多个谓词表达式。 1.1 常见的where子句查询 static void...

    LINQ查询表达式---------where子句

     

    where 子句用在查询表达式中,用于指定将在查询表达式中返回数据源中的哪些元素。 它将一个布尔条件(“谓词”)应用于每个源元素(由范围变量引用),并返回满足指定条件的元素。 一个查询表达式可以包含多个 where 子句,一个子句可以包含多个谓词子表达式。

    1.1 常见的where子句查询

    static void Main(string[] args)
    {
        int[] numbers = { 9, 7, 5, 8, 3, 4, 6, 2, 1, 0 };
    
        var num1 = from n in numbers
                   where n > 5
                   select n;
    
        foreach (var i in num1)
        {
            Console.Write(i + "  ");
        }
    
        Console.Write("\n");
        Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    
        var num2 = from n in numbers
                   where n > 5
                   where n % 2 == 0
                   select n;
    
        foreach (var i in num2)
        {
            Console.Write(i + "  ");
        }
    
        Console.Write("\n");
        Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    
        var num3 = from n in numbers
                   where n > 5 && n < 9
                   select n;
    
        foreach (var i in num3)
        {
            Console.Write(i + "  ");
        }
    
        Console.Write("\n");
        Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    
        var num4 = from n in numbers
                   where (n == 10 || n < 9) && (n != 7)
                   select n;
    
        foreach (var i in num4)
        {
            Console.Write(i + "  ");
        }
    
        Console.ReadLine();
    }
    输出结果:
    9  7  8  6
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    8  6
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    7  8  6
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    5  8  3  4  6  2  1  0
    

     

    1.2 where子句中用自定义函数

    static void Main(string[] args)
    {
        int[] numbers = { 9, 7, 5, 8, 3, 4, 6, 2, 1, 0 };
    
        var num = from n in numbers
                  where IsEva(n)
                  select n;
    
        foreach (var i in num)
        {
            Console.Write(i + "  ");
        }
    
        Console.ReadLine();
    }
    
    public static bool IsEva(int i)
    {
        if (i % 2 == 0)
            return true;
        else
            return false;
    }
    查询结果:
    8  4  6  2  0
    

     

    1.3 动态微词的筛选

    static void Main(string[] args)
    {
        int[] numbers = { 9, 7, 5, 8, 3, 4, 6, 2, 1, 0 };
    
        //定义动态的谓词数组,这个数组应该由实际运行环境生成
        int[] number = { 7, 5, 3, 1, 0 };
    
        //查询在给定谓词数组里不存在的数字
        var num = from n in numbers
                  where !number.Contains(n)
                  select n;
    
        foreach (var i in num)
        {
            Console.Write(i + "  ");
        }
    
        Console.ReadLine();
    }
    输出结果:
    9  8  4  6  2
    

      

     

    转载于:https://www.cnblogs.com/haibing0107/p/6485047.html

    展开全文
  • 说明:与SQL命令的Where作用相似,都是起到范围限定也就是过滤作用的 ,而判断条件就是它后面所接的子句。...一个查询表达式可以包含多个where子句,一个子句可以包含多个谓词表达式。 Wher...

    说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的 ,而判断条件就是它后面所接的子句。

    MSDN解释:where 子句用于查询表达式中,用于指定将在查询表达式中返回数据源中的哪些元素。 它将一个布尔条件("谓词")应用于每个源元素(由范围变量引用),并返回满足指定条件的元素。 一个查询表达式可以包含多个where 子句,一个子句可以包含多个谓词子表达式。

     

    Where操作包括3种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下:

    Student.cs

        /// <summary>
        /// 学生类
        /// </summary>
        public class Student
        {
            private int _numid;       
            private string _name;        
            private string _sexy;
            private int _scroe;
    
            /// <summary>
            /// 学号
            /// </summary>
            public int NumId
            {
                get { return _numid; }
                set { _numid = value; }
            }
            /// <summary>
            /// 姓名
            /// </summary>
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
            /// <summary>
            /// 性别
            /// </summary>
            public string Sexy
            {
                get { return _sexy; }
                set { _sexy = value; }
            }
            /// <summary>
            /// 分数
            /// </summary>
            public int Scroe
            {
                get { return _scroe; }
                set { _scroe = value; }
            }
        }

    测试数据

    List<Student> students = new List<Student>() { 
                    new Student(){NumId=1,Name="Terry",Sexy="",Scroe=92},
                    new Student(){NumId=2,Name="AI",Sexy="",Scroe=85},
                    new Student(){NumId=3,Name="Wade",Sexy="",Scroe=78},
                    new Student(){NumId=4,Name="Tracy",Sexy="",Scroe=60},
                    new Student(){NumId=5,Name="Kobe",Sexy="",Scroe=50},
                };

     

    1.简单形式

    查询姓名为Terry的学生信息:

                var query = from student in students
                            where student.Name=="Terry"
                            select student;
                foreach (var student in query)
                {
                    Console.WriteLine("学号:{0},姓名:{1},性别:{2},分数:{3}",student.NumId,student.Name,student.Sexy,student.Scroe);
                    //学号:1,姓名:Terry,性别:男,分数:92
                }

    查询分数大于80的学生姓名:

                var query = from student in students
                            where student.Scroe > 80
                            select student.Name;
                foreach (var student in query)
                {
                    Console.WriteLine("姓名:{0}", student);
                    //姓名:Terry
                    //姓名:AI
                }

     

    2.关系条件形式

    说明:"与"--"&"和"或"--"&"运算

    查询性别为女性并且分数大于等于60的学生信息:

                var query = from student in students
                            where student.Sexy == "" && student.Scroe >= 60
                            select student;
                foreach (var student in query)
                {
                    Console.WriteLine("学号:{0},姓名:{1},性别:{2},分数:{3}", student.NumId, student.Name, student.Sexy, student.Scroe);
                    //学号:4,姓名:Tracy,性别:女,分数:60
                }

     查询学号为01或者分数小于60分的学生信息:

                var query = from student in students
                            where student.NumId == 1 || student.Scroe < 60
                            select student;
                foreach (var student in query)
                {
                    Console.WriteLine("学号:{0},姓名:{1},性别:{2},分数:{3}", student.NumId, student.Name, student.Sexy, student.Scroe);
                    //学号:1,姓名:Terry,性别:男,分数:92
                    //学号:5,姓名:Kobe,性别:女,分数:50
                }

     

    3.First()形式

    说明:返回集合中的一个元素,其实质就是在SQL语句中加TOP(1),同样的Last()形式也差不多

    查询集合中的第一个学生信息:

                var student = students.First();
                Console.WriteLine("学号:{0},姓名:{1},性别:{2},分数:{3}", student.NumId, student.Name, student.Sexy, student.Scroe);
                //学号:1,姓名:Terry,性别:男,分数:92

    查询小于80分的集合中的第一个学生信息:

                var student = students.First(s => s.Scroe < 80);
                Console.WriteLine("学号:{0},姓名:{1},性别:{2},分数:{3}", student.NumId, student.Name, student.Sexy, student.Scroe);
                //学号:3,姓名:Wade,性别:男,分数:78

    查询小于80分的集合中的最后一个学生信息:

                var student = students.Last(s => s.Scroe < 80);
                Console.WriteLine("学号:{0},姓名:{1},性别:{2},分数:{3}", student.NumId, student.Name, student.Sexy, student.Scroe);
                //学号:5,姓名:Kobe,性别:女,分数:50

     

     

    作者: ForEvErNoME
    出处: http://www.cnblogs.com/ForEvErNoME/
    欢迎转载或分享,但请务必声明文章出处。如果文章对您有帮助,希望你能 推荐关注
     
     

    转载于:https://www.cnblogs.com/ForEvErNoME/archive/2012/07/23/2605630.html

    展开全文
  • mysql 子查询

    2020-11-02 17:28:58
      子查询指在一个 SELECT 查询语句的 WHERE 子句中包含另一个 SELECT 查询语句,或者将一个 SELECT 查询语句嵌入另一个语句中成为其一部分。   在查询语句中,外层 SELECT 查询语句称为主查询,WHERE 子句中的 ...
    原文链接:https://www.cpweb.top/976

    一、简介

      子查询指在一个 SELECT 查询语句的 WHERE 子句中包含另一个 SELECT 查询语句,或者将一个 SELECT 查询语句嵌入另一个语句中成为其一部分。
      在查询语句中,外层 SELECT 查询语句称为主查询,WHERE 子句中的 SELECT 查询语句称为子查询,也称为嵌套查询。嵌套查询一般会涉及两个以上的表,所做的查询有的也可以采用连接查询或者几条查询语句完成。

    二、IN 子查询

      在 WHERE 子句中,可以使用列表运算符 in 将列表中的子查询的值作为筛选条件。在子查询的 SELECT 投影列中只能指定一个列或者表达式。
      语法格式:
        列名 [ not ] in (子查询)
      例如,从 Education 数据库中查询还没有被学生选择的课程。

    mysql> select * from course where cid not in (select cid from sc);
    +----+----------+-----------------------------+--------+
    | No | Cid      | Cname                       | Credit |
    +----+----------+-----------------------------+--------+
    |  7 | 16020016 | 数字媒体采集与处理          |    4.0 |
    |  8 | 16020017 | 静态网页设计与制作          |    3.0 |
    |  9 | 16020018 | web标准设计                 |    4.0 |
    | 10 | 16020019 | web应用程序设计             |    7.0 |
    | 11 | 16020020 | 计算机组网与管理            |    3.5 |
    | 12 | 16020021 | 软件测试与实施              |    2.5 |
    +----+----------+-----------------------------+--------+
    

    三、比较子查询

      当列名的值在关系上满足子查询中的值时,逻辑表达式为真,否则为假。同样在子查询的 SELECT 投影列中只能指定一个列或者表达式。
      语法格式:
        列名 比较运算符 ALL | ANY| SOME(子查询)

    1、ALL 比较子查询

      当列名的值在关系上满足子查询中的每一个值时,逻辑表达式为真,否则为假。
      语法格式:列名 比较符 ALL(子查询)
      例如,从课程表 ‘course’ 中查询出学分最多的课程。

    mysql> select * from course where credit>=ALL(select credit from course);
    +----+----------+--------------------------+--------+
    | No | Cid      | Cname                    | Credit |
    +----+----------+--------------------------+--------+
    |  4 | 16020013 | 面向过程程序设计         |   10.0 |
    +----+----------+--------------------------+--------+
    
    mysql> select * from course where credit=ALL(select max(credit) from course);
    +----+----------+--------------------------+--------+
    | No | Cid      | Cname                    | Credit |
    +----+----------+--------------------------+--------+
    |  4 | 16020013 | 面向过程程序设计         |   10.0 |
    +----+----------+--------------------------+--------+
    

    2、ANY | SOME 比较子查询

      当列名的值在关系上满足子查询中任何一个值时,逻辑表达式为真,否则为假。ANY 和 SOME 用法相同。
      语法格式:列名 比较符 ANY | SOME(子查询)
      例如下例:

    mysql> select * from course where credit>=any(select credit from course);
    +----+----------+-----------------------------+--------+
    | No | Cid      | Cname                       | Credit |
    +----+----------+-----------------------------+--------+
    |  1 | 16020010 | 微机组装与维护              |    2.0 |
    |  2 | 16020011 | 操作系统安装与使用          |    2.0 |
    |  3 | 16020012 | 计算机基础                  |    3.5 |
    |  4 | 16020013 | 面向过程程序设计            |   10.0 |
    |  5 | 16020014 | 数据库开发与维护            |    6.5 |
    |  6 | 16020015 | 面向对象程序设计            |    7.5 |
    |  7 | 16020016 | 数字媒体采集与处理          |    4.0 |
    |  8 | 16020017 | 静态网页设计与制作          |    3.0 |
    |  9 | 16020018 | web标准设计                 |    4.0 |
    | 10 | 16020019 | web应用程序设计             |    7.0 |
    | 11 | 16020020 | 计算机组网与管理            |    3.5 |
    | 12 | 16020021 | 软件测试与实施              |    2.5 |
    +----+----------+-----------------------------+--------+
    

    四、子查询在其他语句中的使用

      例如,保存查询结果到新表。

    mysql> create table new_student1(select sname,sex from student where sex='男' limit 2);
    mysql> select * from new_student1;
    +-----------+-----+
    | sname     | sex |
    +-----------+-----+
    | 赵成刚     ||
    | 郭洪亮     ||
    +-----------+-----+
    
    mysql> create table new_student2 as select sname,sex from student where sex='男' limit 2;
    mysql> select * from new_student2;
    +-----------+-----+
    | sname     | sex |
    +-----------+-----+
    | 赵成刚     ||
    | 郭洪亮     ||
    +-----------+-----+
    

      文章大部分内容来源:《 SQL Server 2008 R2 数据库技术及应用(第3版)》。以上内容基于数据库版本mysql 5.7.28。

    展开全文
  • 数据库子查询

    千次阅读 2013-03-08 15:15:48
    在使用子查询执行操作时,需要遵循下面的一些原则: l子查询必须使用括号括起来,否则无法判断子查询语句的开始和结束。 ...l在子查询中可以使用两种比较运算符:单行运算符和多行运算符。 子查
  • Oracle子查询

    2020-05-12 21:34:10
    文章目录一、生成测试数据1、颜值参数表2、身材参数表3、超女基本信息表4、表之间的关系图5、生成测试数据二、表名限定三、子查询示例1、在字段列表中使用子查询2、在where子句中使用子查询3、从结果集中查询4、在...
  • SQL子查询总结

    千次阅读 2012-09-14 12:39:30
    一个出现在SELECT语句的WHERE子句中子查询被称为"内嵌子查询",一个子查询能够包含另一个子查询,在一个顶级的查询中,Oracle数据库没有限制在FROM子句中的嵌套层数,可以在一个WHERE子句中嵌套255层子查询 ...
  • 子查询注意事项

    2020-12-28 08:25:45
    子查询注意事项 1.任何允许使用表达式的地方都可以使用子查询 2.嵌套在父查询SELECT语句的子查询可包括 SELECT子句 FROM子句 ...3.只出现在子查询中而没有出现在父查询的列不能包含在输出列 ...
  • oracle SQL语句之子查询

    2016-09-12 22:24:57
    可以写在where子句中,作为条件 可以写在update语句中 可以写delete语句中的where子句中 --子查询的分类 单行子查询:返回最多一行数据。 运算符 =,!=,>,>=, 多行子查询:返回最少一行 运算符:any,all (any,...
  • SQL子查询

    2017-03-23 13:16:55
    子查询 当查询语句中包含未知量时,通过使用另外一个查询语句计算出未知量, ...子查询可以应在from子句,where子句和having子句中   语法:  from (查询语句)  where 表达式 运算符 (查询语句)  
  • sql server 子查询

    2017-03-10 12:15:00
    子查询(subquery)定义 --子查询是SQL Server支持的T-SQL语言特性之一,可以内嵌在一...例如,你可以在一个select语句的select列表中内嵌一个子查询,或者在where子句中包含一个子查询作为一个查询条件。 --当把T-S...
  • 复杂查询—子查询

    2020-11-16 13:25:55
    子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询 内部查询只能是 select 语句且可以包括任何子句 外部查询可以是 select,insert,update,delete,set 或 do 子查询的位置 select ,from ...
  • My sql子查询

    2019-06-25 17:41:14
    1.标量子查询 用等于号 2.行子查询 用等于号 3.列子查询 用in ... 子查询可以包含普通select可以包括的任何子句 子查询的位置: select 、from 后、where .group by 和order by 无实用意义。 2. ...
  • IN-子查询

    2019-02-27 22:32:00
    为什么需要子查询? 现实中,很多情况需要进行以下条件...出现在 Where 子句中的 Select 语句被称为子查询(subquery),子查询返回了一个集合,可以通过与这个集合的比较来确定另一个查询集合。 基本语法 表达式 [...
  • 子查询其实就是指嵌入到其他...但是在DML语句中的where子句,set子句中子查询是不能使用order by子句的。  简单例子:查询工作和SMITH一样的所有员工的信息(不包含SMITH)  select ename ,sal from emp e w...
  • jpa--19.JPQL子查询

    千次阅读 2018-04-05 00:33:10
    JPQL也支持子查询,在where 或 having 子句中可以包含另一个查询。当子查询返回多于 1 个结果集时,它常出现在 any、all、exist s表达式中用于集合匹配查询。它们的用法与SQL语句基本相同。   1.2 测试代码 @...
  • 概念了解:select语句中包含一个查询子句(五句,包括where、group by、order by 、having和limit)1.where 经常用到,就不细说了,可以搭配一些比较运算符&gt;,&lt;…;逻辑运算符&amp;&amp;,...
  • 7-12简单子查询

    2016-11-17 22:13:00
    子查询语法:在一个查询语句中包含另一个查询语句。 简单子查询语法: SELECT ...FROM 表1WHERE列1(子查询) 特点: 1:子查询必须放在一对小括号内。 2:‘=’是比较运算符,还可以与其他比较运算符一起使用...
  • 5、子查询 6、合并查询结果 7、为表和字段取别名 8、使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: [sql] view plain copy create table STUDENT( STU_ID int primary KEY, STU_NAME char(10) ...
  • 查询

    2007-04-30 20:52:00
    ORACLE允许在select子句中包含单行子查询, 使用标量子查询可以有效的改善性能,当使用到外部连接,或者使用到了聚合函数,就可以考虑标量子查询的可能性1. 取消外部连接的使用外部连接的做法:select a.username,...
  • 一个最简单的select语句包含select子句、from子句、where子句等,这些子句都不包含子查询(subselect),也没有union操作。而复杂的select语句包含select子句、from子句、where子句(这些子查询可以y是最简单的...
  • sql高级查询的学习

    2020-06-25 20:52:17
    一、EXISTS子查询 语法:select …from 表名 where exists(子查询); 子查询有返回结果: exists 子查询结果为true ...只出现在子查询中而没有出现在父查询的列不能包含在输出列 二、GROUP BY分组查询 语法:SELEC
  • 索引能够提高 SELECT 查询WHERE 子句的速度,但是却降低了包含 UPDATE 语句或 INSERT 语句的数据输入过程的速度。索引的创建与删除不会对表的数据产生影响。 CREATE INDEX 命令: CREATE INDEX命令的基本语法...
  • Oracle之select查询语句

    千次阅读 2017-06-04 13:19:53
    子查询一般出现在SELECT语句的WHERE子句中,Oracle也支持在FROM或HAVING子句中出现子查询子查询比主查询先执行,结果作为主查询的条件,在书写上要用圆括号扩起来,并放在比较运算符的右侧。子查询可以嵌套使用,...
  • where 与 having

    2015-12-24 10:19:10
    where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件不能包含聚组函数,使用where条件显示特定的行。 having 子句的作用是筛选满足条件的组,即在分组之后过滤...
  • 嵌套查询语法格式带有IN谓词的子查询IN谓词实现交...2.子查询中不能使用ORDER BY子句(但可以使用GROUP BY等分组查询) 带有IN谓词的子查询 带有IN谓词的子查询指父查询与子查询之间用IN进行连接,判断某个属性列值是
  • 高级查询(2)

    2020-05-26 15:37:01
    1,子查询可以嵌套在任何SQL语句表达式出现的位置嵌套在SELECT子句中子查询,不必指定列别名 SELECT (子查询) FROM 表名; 嵌套在SELECT中FROM子句的子查询,指定别名,可以当作临时表 SELECT * FROM (子查询) AS 表...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 137
精华内容 54
关键字:

where子句中可以包含子查询