• Assuming you don't have SQL2005 and therefore the PIVOT function you could always resort to

    
    DECLARE @display TABLE(ID INT IDENTITY(1,1),Display VARCHAR(50))
    DECLARE @lRow TINYINT
    SET @lRow = 0
    
    DECLARE @NewRow VARCHAR(50)
    
    INSERT INTO @display (Display) VALUES('|---+---+---|')
    
    WHILE @lRow IS NOT NULL
    BEGIN
    SELECT @lRow = MIN(RowID) FROM dbo.sudoko WHERE RowId>@lRow
    
    IF @lRow IS NOT NULL
    BEGIN
    SET @NewRow=''
    SELECT @NewRow = COALESCE(@NewRow,'')+CAST(CellValue AS CHAR(1))
    FROM dbo.sudoko
    WHERE RowId=@lRow
    
    SET @NewRow = LEFT(@NewRow,3)+'|'+SUBSTRING(@NewRow,4,3)+'|'+RIGHT(@NewRow,3)
    INSERT INTO @display (Display) VALUES('|'+@NewRow+'|')
    
    IF @lRow %3 = 0
    INSERT INTO @display (Display) VALUES('|---+---+---|')
    
    END
    END
    
    SELECT Display FROM @display