Por lo que intuyo, usas un bucle para añadir la coma al final, la idea es realizar ese bucle una vez menos de las que necesites.
ejemplo :
Código Delphi
[-]
campos[0] := 'uno';
campos[1] := 'dos';
campos[2] := 'tres';
campos[3] := 'cuatro';
for i:=0 to High(campos)-1 do
StrSELECT := strSELECT + campos[i]+', ';
strSELECT := StrSELECT := strSELECT + campos[HIGH(CAMPOS)];
Si campos tiene 1 solo string; el bucle for no se ejecuta, y el select te queda bien. (sin la coma al final)
Si no usas un Bucle, porque usas DelimiterChar de un Tstringlist, en lugar de copiarlo todo, simplemente puedes borrar el ultimo caracter:
Código Delphi
[-]
delete (strSELECT, length(STRSELECT)-1, 1);
Espero te sirva en un futuro.
Saludos