2017-01-23 1 views
0

J'ai une table dans une base de données SQLite qui a plusieurs colonnes avec '=' en tête. Je comprends que je peux utiliser ...SQLite TRIM même caractère, plusieurs colonnes

SELECT TRIM(`column1`, '=') FROM table; 

pour nettoyer une colonne mais je reçois une erreur de syntaxe si j'essaie par exemple, cette ...

SELECT TRIM(`column1`, `column2`, `column3`, '=') FROM table; 

En raison du nombre d'arguments incorrect.

Existe-t-il un moyen plus efficace d'écrire ce code que d'appliquer la garniture à chaque colonne séparément comme ceci?

SELECT TRIM(`column1`,'=')as `col1`, TRIM(`column2`,'=')as `col2`, TRIM(`column3`,'=')as `col3` FROM table; 

Répondre

1

Comment SQLite Guide indique: fonction

garniture (X, Y)

La garniture (X, Y) retourne une chaîne formée en supprimant tout et tous caractères qui apparaissent dans Y des deux extrémités de X. Si l'argument Y est omis, trim (X) supprime les espaces des deux extrémités de X.

Vous n'avez que deux paramètres, il est donc impossible de l'appliquer une fois sur une table à trois colonnes.

Le premier paramètre est une colonne, ou une variable sur laquelle vous pouvez appliquer le découpage. Le deuxième paramètre est un caractère à modifier.

+0

Donc je dois les faire comme des appels TRIM séparés? – spcurtis81

+0

Vous devez appeler en tant qu'appels TRIM distincts, comme vous l'avez écrit dans votre requête –

+0

Merci Joe. Appelez-les séparément maintenant. J'ai remarqué dans un autre thread de pile que l'utilisation de * dans SELECT n'est pas conseillée aussi, alors imaginez bien que cela puisse sembler l'approche à long terme, c'est la plus efficace sur le plan des ressources. Merci. – spcurtis81