J'essaie de concaténer plusieurs colonnes dans une requête dans SQL Server 11.00.3393.
J'ai essayé la nouvelle fonction CONCAT()
mais cela ne fonctionne pas lorsque j'utilise plus de deux colonnes.
Je me demande donc si c'est le meilleur moyen de résoudre le problème:
SELECT CONCAT(CONCAT(CONCAT(COLUMN1,COLUMN2),COLUMN3),COLUMN4) FROM myTable
Je ne peux pas utiliser COLUMN1 + COLUMN2
à cause des valeurs NULL
.
MODIFIER
Si j'essaie SELECT CONCAT('1','2','3') AS RESULT
j'obtiens une erreur
La fonction CONCAT nécessite 2 argument (s)
Il est clair par le discours que le problème réside dans l’utilisation de VS2010 pour écrire la requête, car elle utilise la fonction canonique CONCAT()
qui est limitée à 2 paramètres. Il y a probablement un moyen de changer cela, mais je ne suis pas au courant.
Une alternative:
SELECT '1'+'2'+'3'
Cette approche nécessite que les valeurs non-chaîne soient converties/converties en chaînes, ainsi que la gestion de NULL
via ISNULL()
ou COALESCE()
:
SELECT ISNULL(CAST(Col1 AS VARCHAR(50)),'')
+ COALESCE(CONVERT(VARCHAR(50),Col2),'')
SELECT CONCAT(LOWER(LAST_NAME), UPPER(LAST_NAME)
INITCAP(LAST_NAME), HIRE DATE AS ‘up_low_init_hdate’)
FROM EMPLOYEES
WHERE HIRE DATE = 1995
Blockquote
Utiliser la concaténation dans Oracle SQL est très simple et intéressant. Mais je ne connais pas grand chose à propos de MS-SQL.
Blockquote
Ici nous allons pour Oracle: Syntaxe: SQL> select First_name||Last_Name as Employee
from employees;
EllenAbel SundarAnde MozheAtkinson
Ici AS: mot clé utilisé comme alias . Nous pouvons concaténer avecNULLvalues . Ex. : columnm1 || Null
Supposons que l'une de vos colonnes contienne une valeurNULLalors le résultat ne montrera que la valeur de cette colonne qui a une valeur.
Vous pouvez également utiliser littéral chaîne de caractères dans la concaténation.
par exemple. select column1||' is a '||column2
from tableName;
Résultat: column1 est une colonne2 ., entre littéraux, doit être indiqué entre guillemets simples. vous pouvez exclure les nombres.
NOTE: Ceci ne concerne que le serveur Oracle // SQL.
Essayez d'utiliser ci-dessous:
SELECT
(RTRIM(LTRIM(col_1))) + (RTRIM(LTRIM(col_2))) AS Col_newname,
col_1,
col_2
FROM
s_cols
WHERE
col_any_condition = ''
;