Pivoting some row data into columns (SQL Server 2008 R2)
Ok, here's my two pence:

SELECT header.Col1,
       MAX((CASE WHEN details.ordinal=1 THEN details.Col2 END)) AS row1,
       MAX((CASE WHEN details.ordinal=2 THEN details.Col2 END)) AS row2,
    -- ... and so on..
       MAX((CASE WHEN details.ordinal=99 THEN details.Col2 END)) AS row99

FROM (
      --- For each Col1, enumerate all the rows and return Col2 as well:
      SELECT Col1, Col2,
             ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Dumb_ID) AS ordinal
      FROM someTable
      ) AS details

--- join this to the header:
INNER JOIN someTable AS header ON details.Col1=header.Dumb_ID

--- One row per header:
GROUP BY header.Col1;


Admittedly, not the prettiest code I've ever written. How it works:


The "header" in this case is the row where Dumb_ID='1A!'.
"details" contains one row for each record that can be joined to the header ON header.Dumb_ID=details.Col1, in this example rows where Col1='1A!'.
The "details" subquery is given an ordinal, a ROW_NUMBER(), that enumerates each row (partitioned by Col1).
"header" and "details" are joined and everything is output by aggregating the result, so we get a single record for each "header"
Each "detail" is assigned to its own column using a CASE and the ordinal number. We need to use MAX() (or any other aggregate function, really) here so it'll work with the aggregate.


I hope I've understood your question correctly. Also, note that this is ad-hoc coded, without testing. Let me know how it works out.