Question: Is it possible to create a mysql select (directly or using a stored procedure) that will return blanks for repeating columns. For example, a select that would normally return these 7 records with 2 columns:

```
Bob   123
Bob   557
Bob   888
Joe   887
Joe   223
Tom   899
Tom   999

```

I would prefer to see this directly from the sql select:

```
Bob   123
      557
      888
Joe   887
      223
Tom   899
      999

```

I realize I can just post process the records in my program, but I'd like to replace the duplicates with blanks within the sql call.

Answer: 
Yes, it's possible, but it would be **very expensive** (subqueries!) and not at all efficient. Whatever language you use or however you transfer this data directly, it's not worth it to have SQL spare these few bytes.
Following should work but it doesn't return the results in the order you've used in your example.

```
SELECT  IF(n.ID = nm.ID, n.Name, NULL)
        , n.ID
FROM    Names n
        INNER JOIN (
          SELECT  Name
                  , ID = MIN(ID)
          FROM    Names        
          GROUP BY
                  Name
        ) nm ON nm.Name = n.Name
ORDER BY
        n.Name
        , n.ID

```