Skip to main content

MS SQL Server loop through a list of strings

SQL Server does not have a straight forward way to do a For Loop with a list of string values.

The easiest solution I found, can be seen below:

DECLARE @list varchar(8000) DECLARE @pos INT DECLARE @len INT DECLARE @value varchar(8000) SET @list = 'A101,A203,B12341,C124,' set @pos = 0 set @len = 0 WHILE CHARINDEX(',', @list, @pos+1)>0 BEGIN set @len = CHARINDEX(',', @list, @pos+1) - @pos set @value = SUBSTRING(@list, @pos, @len) PRINT @value -- for debug porpose --DO YOUR MAGIC HERE set @pos = CHARINDEX(',', @list, @pos+@len) +1 END


Please check the original website: https://www.admfactory.com/split-a-string-and-loop-in-sql-server/

Comments

Popular posts from this blog

NodeJS MSSQL connection error "EINVALIDSTATE"

It took me some time to find the reasons for the connection error below: Requests can only be made in the LoggedIn state, n…", code: "EINVALIDSTATE" I was trying to connect to MS Sql server using Node JS TEDIOUS package. The code from the Microsoft  is very simple and didn't return a more complete error message. This is the original code: ... var connection = new Connection(config);  connection.on( 'connect' , function ( err ) {  // If no error, then good to proceed.  console .log( "Connected" );  executeStatement(); }); ... Checking the internet a bit more, I found a way to get more insight into the error: ... var  connection =  new  Connection(config);  connection.on( 'connect' ,  function ( err )  {  if (err) return console.error(err);   console .log( "Connected" );  executeStatement(); }); ... That raised: ConnectionError {message: "Failed to connect to 10.0.0.100:1433 - c...

AWS Athena and S3 Partitioning

Athena is a great tool to query your data stored in S3 buckets. To have the best performance and properly organize the files I wanted to use partitioning. Although very common practice, I haven't found a nice and simple tutorial that would explain in detail how to properly store and configure the files in S3 so that I could take full advantage of the Athena partitioning features. After some testing, I managed to figure out how to set it up. This is what I did: Starting from a CSV file with a datetime column, I wanted to create an Athena table, partitioned by date. A basic google search led me to this  page , but It was lacking some more detailing. The biggest catch was to understand how the partitioning works. Based on a datetime column(processeddate), I had to split the date into the year, month and day components to create new derived columns, which in turn I'll use as the partition keys to my table Example of d...

AWS Service Catalog Rule Functions - Cloudformation Fn::Contains Example

I came across an YAML Cloudformation template that was failing validation with the following error: Cannot convert the template because of an error:: unknown tag !<!Contains> at line... The !Contains function is part of AWS Service Catalog, and it is meant to give more control and flexibility when creating your company's stacks. The challenge is that the current AWS Service Catalog documentation only provides examples in JSON format, leaving YAML users at their own luck. Fiddling around in different forums, I happened to notice that YAML can recognize the JSON pattern of the Contains function ( 'Fn::Contains' ) So in order to make the YAML code work, I replaced !Contains with 'Fn::Contains' See the examples below: JSON     "Rules": {         "AuroraDBInstanceTypeRule": {             "RuleCondition": {                 "Fn::Equals": [     ...