The Leading Educational Resource for IT Professionals

SQL 101: String-Related Functions, Part 5—Cutting and Stitching Strings

by Victoria Mack May 12, 2016 0 Comments

Stringscaping continues! This article explores functions to extract parts of a string that are similar to MS Excel functions and ways to stitch the strings back together. This “stitching” will introduce another function: LENGTH.


The functions discussed in the previous article allow you to add, replace, and remove characters from a string. While this is interesting and somewhat useful, being able to “stitch” two strings together is usually more useful. This article covers a group of functions that helps with that task.


You are probably familiar with MS Excel’s LEFT and RIGHT functions. LEFT and RIGHT allow you to extract the leftmost or rightmost n characters of a string. Most people know these functions but are not aware that there’s another one, named MID, that would be the long-lost twin brother of RPG’s %SUBSTR BIF if this were a soap opera. Well, LEFT and RIGHT also exist in SQL, along with the equivalent to the %SUBSTR BIF. While the following paragraphs won’t bring a lot of new information, I recommend you read them carefully, because I’ll use these functions in the “Embedding SQL in Your RPG Code” subseries as well as later in this series and also because they have some interesting details you might not be aware of.


Let’s begin with LEFT; just like its MS Excel namesake, LEFT returns the leftmost n characters of a given string. The following statement…


SELECT            LEFT(‘THIS IS A TEST‘, 7)



…returns ‘THIS IS’ because I specified a 7 in the function’s second parameter, thus indicating that I wanted the first (or leftmost) 7 characters of the input string. You can probably guess what happens when I use the RIGHT function with the same parameters:


SELECT            RIGHT(‘THIS IS A TEST‘, 7)



The system will return ‘ A TEST’ because those are the last (or rightmost) 7 characters of the input string. Of course, you can always use SQL’s SUBSTR function for the same purpose; you just need to adjust the parameters accordingly. Just like MS Excel’s MID function, SUBSTR has three parameters: input string, start position, and length to extract. Now I’ll indicate that I want to start in position 1 and that my intention is to extract 7 characters:


SELECT            SUBSTR(‘THIS IS A TEST‘, 1, 7)



I’ll be getting the same ‘THIS IS’ string that the sample statement with the LEFT function produced. Slightly trickier is emulating the RIGHT function with SUBSTR because you need to know the length of the string in order to determine where to start extracting. For that, SQL has a LENGTH function, similar to its RPG’s %LEN; simply indicate a literal string, a field, or an expression and the system returns the length, in characters, of it. So I can use SUBSTR and LENGTH together in a little function-nesting example to emulate the RIGHT function’s functionality:





Such an expression is always evaluated from the inside out, i.e., the innermost function is evaluated first, its result is passed to the function that uses that innermost function as parameter, and so on, until the whole expression can be evaluated. In this case, this means that the system will calculate the expression LENGTH(‘THIS IS A TEST’) – 6 before performing the SUBSTRING operation. As expected, the final output is the same ‘ A TEST’ string that the aforementioned RIGHT function produced.


LEFT, RIGHT, and SUBSTR allow you to extract parts of a string. That covers the first part of “stitching” strings together. The actual stitching process can be easily performed with SQL’s concatenation operatoraka double pipe (||)or the CONCAT function. Here’s an example that covers both methods:


SELECT            ‘THIS IS A ‘ || ‘TEST‘




Both operations return the exact same thing: ‘THIS IS A TEST‘. While the first method is similar to RPG’s concatenation method (simply replace the double pipe with a plus sign and you have RPG’s concatenation operation), the second one likens MS Excel’s Concatenate function. I usually use the double pipe, because of its similarity to RPG, but feel free to use whichever you prefer; the result will be the same.


This concludes the SQL string-related functions (not-so-brief) overview. I didn’t cover all the available functions, just the ones I think are the most useful. I’ll move on to the date-related functions, with the same approach: covering the most interesting with reasonable depth and a few examples.


If the examples provided were not enough to clear your doubts, use the comments section; I’ll try to help with additional examples and/or explanations.


About the Author: Rafael Victória-Pereira

Victoria Mack
Victoria Mack


Also in MC Press Articles

Gifts to Give Yourself This Holiday

by Victoria Mack December 21, 2016 0 Comments

It’s the holiday season, and everyone is in the gift-giving mood. Be sure you don’t forget to invest in your company and career.

brian mayWritten by Brian May

It’s a special time of the year. Family gatherings for the holidays, football season, and time in the woods all make this one of my favorite seasons. The month of December is also unique for IT departments. December is certainly not business as usual for most of us.

It’s time for budgets. That may mean requesting budget items for next year or spending surplus budget before the end of the year. It’s often when project work slows down a bit as end users, and IT staff alike, take time away from the office. It’s a time when stress is often at its lowest, and it’s just easier to get some things done.

Continue Reading →

SQL 101: Tools of the Trade - i Navigator’s Run SQL Scripts

by Victoria Mack December 21, 2016 0 Comments

A more “modern” alternative to STRSQL, discussed in the last two articles, is the i Navigator’s Run SQL Scripts tool. Let’s explore it together, shall we?

rafael victoria preiraWritten by Rafael Victória-Pereira

While STRSQL is a green-screen tool, Run SQL Scripts is part of the i Navigator package. You can access it by choosing the Run SQL Scripts option, either from the bottom-right pane of the i Navigator window after you’ve chosen the Databases tree node from the right panel, as shown in Figure 1, or by right-clicking the database name and choosing the respective option.

Continue Reading →

Energy, Vibe, and Atmosphere

by Victoria Mack December 19, 2016 0 Comments

This is IT. We must be willing to bend.

steve pitcherWritten by Steve Pitcher

With a growing emphasis in talking about the state of the current IBM i workforce, also known as the “IBM i skills shortage,” it behooves oneself to keep the noise level to a minimum in order to make even-keeled decisions. In short, don’t necessarily believe all the hype you read.

I’d like to think of this as an extension piece to “The IBM i Skills Shortage Myth.” It’s not necessarily a “part two” per se, but more of a story that runs parallel. I’ve been trying to write this for about six weeks, but some things are just hard to put into words, especially when they involve how you feel as opposed to what you know. Besides, writing what you know is easy. Writing what you feel leaves room for reader interpretation, so you have to be more careful.

Continue Reading →