concaténer deux colonnes de firebase database en une colonne de résultats

J’utilise le code SQL suivant pour concaténer plusieurs colonnes de firebase database d’une table dans une colonne du jeu de résultats:

SELECT (field1 + '' + field2 + '' + field3) FROM table1

Lorsque l’un des champs est nul, j’ai obtenu un résultat nul pour toute l’expression de concaténation. Comment puis-je surmonter cela?

La firebase database est MS SQL Server 2008. Au fait, est-ce la meilleure façon de concaténer des colonnes de firebase database? Existe-t-il un SQL standard?

La manière standard de SQL de faire ceci serait:

 SELECT COALESCE(field1, '') || COALESCE(field2, '') || COALESCE(field3, '') FROM table1 

Exemple:

 INSERT INTO table1 VALUES ('hello', null, 'world'); SELECT COALESCE(field1, '') || COALESCE(field2, '') || COALESCE(field3, '') FROM table1; helloworld 

Si vous utilisiez SQL 2012 ou supérieur, vous pourriez utiliser la fonction CONCAT:

 SELECT CONCAT(field1, field2, field3) FROM table1 

Les champs NULL ne briseront pas votre concaténation.

@bummi – Merci pour le commentaire – édité ma réponse pour lui correspondre.

Le comportement normal avec NULL est que toute opération incluant une NULL donne un NULL …

 - 9 * NULL = NULL - NULL + '' = NULL - etc 

Pour surmonter ce problème, utilisez ISNULL ou COALESCE pour remplacer toute instance de NULL par autre chose.

 SELECT (ISNULL(field1,'') + '' + ISNULL(field2,'') + '' + ISNULL(field3,'')) FROM table1 

Utilisez ISNULL pour le surmonter.

Exemple:

 SELECT (ISNULL(field1, '') + '' + ISNULL(field2, '')+ '' + ISNULL(field3, '')) FROM table1 

Cela remplacera alors votre contenu NULL par une chaîne vide qui préservera l’opération de concaténation de l’évaluation en tant que résultat NULL global.

Si vous rencontrez un problème avec les valeurs NULL, utilisez la fonction COALESCE pour remplacer la valeur NULL par la valeur de votre choix. Votre requête ressemblerait alors à ceci:

 SELECT (COALESCE(field1, '') + '' + COALESCE(field2, '') + '' + COALESCE(field3,'')) FROM table1 

http://www.codeproject.com/KB/database/DataCrunching.aspx

Si les deux colonnes sont numériques, utilisez ce code

Just Cast Column As Varchar (Taille)

Exemple:

 Select (Cast(Col1 as Varchar(20)) + '-' + Cast(Col2 as Varchar(20))) As Col3 from Table 

Just Cast Column As Varchar (Taille)

Si les deux colonnes sont numériques, utilisez le code ci-dessous.

Exemple:

 Select (Cast(Col1 as Varchar(20)) + '-' + Cast(Col2 as Varchar(20))) As Col3 from Table 

Quelle sera la taille de col3 ce sera 40 ou quelque chose d’autre