Posted by
Andy Brown
on 20 September 2019
The CONCAT function makes it much easier to join columns together, while the STRING_AGG and CONCAT_WS functions make it easier to create things like comma-delimited lists.
Posted by
Andy Brown
on 11 June 2019
If you're creating Reporting Services reports using multivalue parameters and stored procedures, you'll find this function to split a list of values into a single-table column useful.
Posted by
Andy Brown
on 13 May 2019
If your stored procedures or SQL queries are running slowly, don't bother looking at correlated subqueries, cursors, functions or any of the other usual culprits. There's one SQL syntax which Wise Owl have found to be an order of magnitude worse than any other, as this blog shows.
Posted by
Andy Brown
on 02 May 2019
This blog explains why you might want to use the PARAMETERS tab in the Dataset Properties dialog box in SSRS.
Posted by
Andy Brown
on 29 March 2019
Someone has finally won our competition to think of a better acronym for the order of keywords in SQL, we're pleased to announce.
Posted by
Andy Brown
on 23 July 2018
Need to generate a partition for a fact table for each year, product or region? This blog gives five approaches, so that you can choose which method is for you.
Posted by
Andy Brown
on 23 July 2018
This blog shows how you can load the empty structure of a large fact table into an Analysis Services tabular data model, then use partitions to bring in the data bit by bit.
Posted by
Sam Lowrie
on 19 June 2018
Learn how to MERGE rows from two tables into one combined table, and how to remove unwanted data from both tables.
Posted by
Andy Brown
on 16 February 2018
There seems to be an occasional bug in Report Builder which fills a table with blank rows. Here's one owl's way to get round it.
Posted by
Andy Brown
on 16 February 2018
Report Builder and SQL Server Reporting Services are almost identical - which makes the small but important differences even harder to explain.
Posted by
Andy Brown
on 16 February 2018
You can use the IIF function in SQL as an alternative to the CASE WHEN statement. We thought we would share this new (for us) discovery with the world!
Posted by
Andy Brown
on 27 April 2017
If you've added an expression constraint to control flow in a package in Integration Services, this blog will show you how to display what the constraint does automatically.
Posted by
Andy Brown
on 21 April 2017
Follow this blog to learn how to use an SSIS package to loop over the worksheets in an Excel XLSX workbook, importing the contents of each.
Posted by
Andy Brown
on 02 March 2017
When you are programming in SQL, you often have the choice of using table variables or temporary tables. This blog considers whether one method is substantially quicker than the other (spoiler alert: not really).
Posted by
Andy Brown
on 03 February 2017
Everyone has a favourite system stored procedure (you do, don't you?). But five? That's the subject of this blog, anyway.
Posted by
Andy Brown
on 01 February 2017
A blog setting out an approach to coding in SQL to ensure consistently high standards across your organisation.
Posted by
Andy Brown
on 27 September 2016
If you want to group items in a SQL query, showing a comma-delimited list of ids for each, generating an XML file is not the obvious place to start - but it should be.
Posted by
Andy Brown
on 07 April 2016
Looping over Excel workbooks is one thing, but how can you loop over all of the worksheets in a single workbook, importing the contents of each? This blog explains the steps you need to follow.
Posted by
Andy Brown
on 07 April 2016
If you've been given the output from a pivot table or a cube, you can collapse it back into its original state using the UNPIVOT transform in Integration Services.
Posted by
Andy Brown
on 23 March 2016
It's only a small thing, but … this blog shows how you can click and drag with the ALT key held down, then type to apply a table alias to lots of tables simultaneously.