MDX Essentials: Basic Set Functions: The EXTRACT() Function

October 4, 2004

About the Series ...

This is the twenty-fourth article of the series, MDX Essentials. The series is designed to provide hands-on application of the fundamentals of the Multidimensional Expressions (MDX) language, with each tutorial progressively adding features designed to meet specific real-world needs.

For more information about the series in general, as well as the software and systems requirements needed for getting the most out of the lessons included, please see the first article, MDX at First Glance: Introduction to MDX Essentials.

Note: Service Pack 3 updates are assumed for MSSQL Server 2000, MSSQL Server 2000 Analysis Services, and the related Books Online and Samples.


In this lesson, we will introduce a function that operates upon a specified set, extracting the dimensions of that set as we dictate. As most references point out, by way of explanation, the EXTRACT() function works in a manner that is the opposite of the CROSSJOIN() function (for detailed information on the CROSSJOIN() function, see my Database Journal article MDX Essentials: Basic Set Functions: The CrossJoin() Function ). We will consider elementary uses of the EXTRACT() function in this article, and then explore more sophisticated uses in subsequent articles. As with other Basic Functions articles within this series, our objective is to build a foundation in the rudiments of the function, from which we can expand to more sophisticated exploitation in subsequent articles.

As we have noted the case to be with many other MDX functions, the EXTRACT() function can be leveraged to perform tasks that range from the simple to the sophisticated. We will introduce the function, commenting upon its operation and touching upon uses at a general level, and then we will:

  • Examine the syntax surrounding the function;
  • Undertake an illustrative example of the use of the function, in a multi-step practice exercise;
  • Briefly discuss the results datasets we obtain in the practice examples.