--没有intersect(),except(), 
--用 in 或者 not in 代替交集和差集的函数

解决方案 »

  1.   

    可用in/exists/not in/not exists等实现
      

  2.   

    intersect(),except()不是Transact-SQL的东东,所以不能在SQL中使用,要实现那样的功能如楼上
      

  3.   

    用嵌套select当然可以实现所想要的功能,但我想知道intersect()函数的用法啊,我是一个老师,讲集合交差运算,想找个东西与之对应,在sql帮助里说有这个函数:
    ***********************
    Intersect
    返回两个输入集合的交集,可以选择保留重复项。 语法
    Intersect(«Set1», «Set2»[, ALL])注释
    此函数返回 «Set1» 和 «Set2» 的交集。根据默认设置,在相交之前先删除两个集合中的重复项。 可选的 ALL 保留重复项。ALL 有几种工作方式。算法是:不重复的元素照常相交。对于 «Set1» 中的每个重复项,将其与 «Set2» 中的重复项相匹配,如果存在匹配的项,则在交集中保留匹配的重复项。示例
    示例Intersect({[1994], [1995], [1996]}, {[1995], [1996], [1997]})返回集合 {[1995], [1996]}。
    *********************************************************
    我就是不知道这个例子或是类似的应该在哪里可以用,谁能告诉我啊!!!!!!!
      

  4.   

    看帮助最上面一行是:Analysis Services,而非Transact-SQL应该交学生学Transact-SQL
      

  5.   

    一言点醒我梦中人,呵呵,大虾,我偷个懒,再问你一下:除运算有没有对应的操作符?比如对于表:selecting(s_id,c_id),s_id是学号,c_id是课号,selecting是选课表,找出全部学生都选了的课号.
    呵呵,帮我写一下,这分就全部给你了啊,风云同志
      

  6.   

    select 课号 from selecting t
    where (select count(1) from selecting where 课号=t.课号)
          =
          (select count(1) from 学生表)
      

  7.   

    难道真的没有对应“关系除运算”的sql操作符吗?找了很久,没有;
    附:关系除运算是这样的:
    ***************************************************************
    (select s_id,c_id from selecting) 除以 ( select distinct s_id from selecting)
    这个除运算能自动找出一个结果集:第一列是所有的s_id,第二列是完全一样的c_id.
    最后的结果就是那个完全一样的c_id.
    *************************************************************
    但是我在sql语法里面没有发现有对应的操作符与之对应,本来我想这个应该支持的,应用太普遍了.
    有没有哪位了解,请告知,谢谢了