0

Guys,

without saying anything much, I have such data at hand (rows from a database table):

111 | xyz | a, b, c

Following someone's wise words, I would love to have this transformed to :

111 | xyz | a
	111 | xyz | b
	111 | xyz | c

DO NOT assume that there will be ONLY a single cell/column with multiple values.

The following might also arise :

111 | xyz, def | a, b, c

This has to be transformed to :

111 | xyz | a
	111 | xyz | b
	111 | xyz | c
	111 | def | a
	111 | def | b
	111 | def | c

C++ code or suggestions would be great.. although I am interested in knowing more about ;

1. Working implementations/snippets
2. Alternative but automated or programmatic approaches to get equivalent output.
3. Links to other resources where I might get more answers to this question.. for example any good database experts forums you guys might know/heard about.. visit etc...

I am really looking forward to some help on this because I thought up a recursive solution to this problem but I got stuck when I found out that I would have to know and predefine the table schema and model an object/class/structure on it.. that would make my program not applicable for any table, but rather I would have to redefine and recompile the classes for the table schema for every table.

I am sure there are easier ways out.

3
Contributors
2
Replies
3
Views
9 Years
Discussion Span
Last Post by debasisdas
0

Yeah it seems like you need some sort of generic way to set up an arbitary number of nested for loops. Perhaps recursion of some sort.

//111 | xyz, def | a, b, c

#include <iostream>
#include <string>

using namespace std;

int main()
{

  string array1[] = "111";
  string array2[] = {"xyz", "def"};
  string array3[] = {"a", "b", "c"};

  for ( int i = 0; i < 1; i++ )
  {
    for ( int j = 0; j < 2; j++ )
    {
      for ( int k = 0; k < 3; k++ )
      {
        cout << array1[i] << " " << array2[j] << " " << array3[k] << endl;
      }
    }
  }
  cin.get();
}

I think hard coding it would be the simplest solution.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.