{"id":1013,"date":"2004-10-20T19:37:00","date_gmt":"2004-10-20T19:37:00","guid":{"rendered":"\/blogs\/bobb\/post\/Intersect-and-Exceptalmost.aspx"},"modified":"2004-10-20T19:37:00","modified_gmt":"2004-10-20T19:37:00","slug":"intersect-and-except-almost","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/","title":{"rendered":"Intersect and Except&#8230;.almost"},"content":{"rendered":"<p>\nThere&#39;s a new Community Technology Preview of SQL Server 2005 available on MSDN for universal subscribers. I&#39;m sure you&#39;ve all heard of it by now, I was out of the country last week with limited bandwidth&nbsp;and just downloaded mine yesterday. I was meandering through the BOL, looking for interesting things, when it dawned on me that the BOL title bar read &quot;Microsoft SQL Server 2005 Beta 3&quot;. Oh.\n<\/p>\n<p>\nI&#39;d heard rumors that the SQL set operations INTERSECT and EXCEPT might be added in beta 3. So I went to my handy BOL Search tab (it took some time to get used to Search being a Tab in the main page), and entered INTERSECT. They were doc&#39;d! Cool.\n<\/p>\n<p>\nBrought up SQL Server Management Studio&nbsp;and hammered out my example tables for the test. Then entered:\n<\/p>\n<p>\nSELECT id FROM table1 INTERSECT SELECT id FROM table2\n<\/p>\n<p>\ndrumroll&#8230;answer is: &quot;Incorrect syntax near the keyword &#39;intersect&#39;.&quot;\n<\/p>\n<p>\nDarn&#8230;maybe next CTP release. Either the rumor was mistaken or BOL is just a wee bit ahead of the implementation\/testing. It happens.\n<\/p>\n<p>\nFor more on INTERSECT and EXCEPT check out the BOL. Or your E.F. Codd or ANSI SQL-92&nbsp;book. Looks like it will be coming. For those of us that remember set theory (I studied it in the public school system in the 60s in 4th grade, does this fact date me?) it&#39;s how sets &quot;always worked&quot;. For SQL relational calculus afficiandos we&#39;ve been missing these keywords, although it was relatively&nbsp;straightforward to get the same results with using EXISTS and NOT EXISTS. Yet another feature from the standard that&#39;s implemented.&nbsp;I&#39;m sure there&#39;s more to it than that, such as interesting questions like &quot;can I use INTERSECT and EXCEPT with indexed views? or in common table expressions? or updateable ADO recordsets?&quot;\n<\/p>\n<p>\nSo in this version of SQL Server there&#39;s the complement of relational calculus operations in T-SQL. And with .NET procedural code, you can whip up UDFs with formulas from differential and integral calculus that run fast, too. [sorry. couldn&#39;t help it]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There&#39;s a new Community Technology Preview of SQL Server 2005 available on MSDN for universal subscribers. I&#39;m sure you&#39;ve all heard of it by now, I was out of the country last week with limited bandwidth&nbsp;and just downloaded mine yesterday. I was meandering through the BOL, looking for interesting things, when it dawned on me [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,40],"tags":[],"class_list":["post-1013","post","type-post","status-publish","format-standard","hentry","category-sql-server-2005","category-transact-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Intersect and Except....almost - Bob Beauchemin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Intersect and Except....almost - Bob Beauchemin\" \/>\n<meta property=\"og:description\" content=\"There&#039;s a new Community Technology Preview of SQL Server 2005 available on MSDN for universal subscribers. I&#039;m sure you&#039;ve all heard of it by now, I was out of the country last week with limited bandwidth&nbsp;and just downloaded mine yesterday. I was meandering through the BOL, looking for interesting things, when it dawned on me [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/\" \/>\n<meta property=\"og:site_name\" content=\"Bob Beauchemin\" \/>\n<meta property=\"article:published_time\" content=\"2004-10-20T19:37:00+00:00\" \/>\n<meta name=\"author\" content=\"Bob Beauchemin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bob Beauchemin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/\",\"name\":\"Intersect and Except....almost - Bob Beauchemin\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website\"},\"datePublished\":\"2004-10-20T19:37:00+00:00\",\"dateModified\":\"2004-10-20T19:37:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2005\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/category\/sql-server-2005\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Intersect and Except&#8230;.almost\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/\",\"name\":\"Bob Beauchemin\",\"description\":\"SQL Server Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e\",\"name\":\"Bob Beauchemin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g\",\"caption\":\"Bob Beauchemin\"},\"sameAs\":[\"http:\/www.sqlskills.com\/blogs\/bobb\/\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/author\/bobb\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Intersect and Except....almost - Bob Beauchemin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/","og_locale":"en_US","og_type":"article","og_title":"Intersect and Except....almost - Bob Beauchemin","og_description":"There&#39;s a new Community Technology Preview of SQL Server 2005 available on MSDN for universal subscribers. I&#39;m sure you&#39;ve all heard of it by now, I was out of the country last week with limited bandwidth&nbsp;and just downloaded mine yesterday. I was meandering through the BOL, looking for interesting things, when it dawned on me [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/","og_site_name":"Bob Beauchemin","article_published_time":"2004-10-20T19:37:00+00:00","author":"Bob Beauchemin","twitter_misc":{"Written by":"Bob Beauchemin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/","url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/","name":"Intersect and Except....almost - Bob Beauchemin","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website"},"datePublished":"2004-10-20T19:37:00+00:00","dateModified":"2004-10-20T19:37:00+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/intersect-and-except-almost\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/bobb\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2005","item":"https:\/\/www.sqlskills.com\/blogs\/bobb\/category\/sql-server-2005\/"},{"@type":"ListItem","position":3,"name":"Intersect and Except&#8230;.almost"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/","name":"Bob Beauchemin","description":"SQL Server Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/bobb\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e","name":"Bob Beauchemin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g","caption":"Bob Beauchemin"},"sameAs":["http:\/www.sqlskills.com\/blogs\/bobb\/"],"url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/author\/bobb\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts\/1013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/comments?post=1013"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts\/1013\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/media?parent=1013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/categories?post=1013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/tags?post=1013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}