docs: def sql_select(self,fields,*args,**kwargs):
          """Execute a simple SQL ``SELECT`` statement and returns values as new numpy rec array.
  
          The arguments *fields* and the additional optional arguments
          are simply concatenated with additional SQL statements
          according to the template::
  
             SELECT <fields> FROM __self__ [args]
  
          The simplest fields argument is ``"*"``.
  
          Example:
             Create a recarray in which students with average grade less than
             3 are listed::
  
               result = T.SELECT("surname, subject, year, avg(grade) AS avg_grade",
                              "WHERE avg_grade < 3", "GROUP BY surname,subject",
                              "ORDER BY avg_grade,surname")
  
             The resulting SQL would be::
  
               SELECT surname, subject, year, avg(grade) AS avg_grade FROM __self__
                    WHERE avg_grade < 3
                    GROUP BY surname,subject
                    ORDER BY avg_grade,surname
  
             Note how one can use aggregate functions such avg().
  
             The string *'__self__'* is automatically replaced with the table
             name (``T.name``); this can be used for cartesian products such as ::
  
                LEFT JOIN __self__ WHERE ...
  
          .. Note:: See the documentation for :meth:`~SQLarray.sql` for more details on
                    the available keyword arguments and the use of ``?`` parameter
                    interpolation.
          """
          SQL = "SELECT "+str(fields)+" FROM __self__ "+ " ".join(args)
          return self.sql(SQL,**kwargs)