web-dev-qa-db-fra.com

Sélectionnez 2 colonnes en une et combinez-les

Est-il possible de sélectionner 2 colonnes en une seule et de les combiner?

Exemple: 

select something + somethingElse as onlyOneColumn from someTable

29
pringlesinn

Oui, comme vous l'avez fait:

select something + somethingElse as onlyOneColumn from someTable

Si vous avez interrogé la base de données, vous auriez eu la bonne réponse. 

Qu'est-ce qui se passe est que vous demandez une expression. Une expression très simple est juste un nom de colonne, une expression plus compliquée peut contenir des formules, etc.

21
gjvdkamp

Oui,

SELECT CONCAT(field1, field2) AS WHOLENAME FROM TABLE
WHERE ...

résultera en un ensemble de données comme:

WHOLENAME
field1field2
25
David Fox
(SELECT column1 as column FROM table )
UNION 
(SELECT column2 as column FROM table )
22
surya

Oui, c'est possible, à condition que les types de données soient compatibles. Sinon, utilisez un CONVERT () ou un CAST ()

SELECT firstname + ' ' + lastname AS name FROM customers
12
SupremeDud

Aucune des réponses ci-dessus n'a fonctionné pour moi, mais cela a ...

SELECT CONCAT(Cust_First, ' ', Cust_Last) AS CustName FROM customer
11
Brian

L'opérateur + devrait très bien faire l'affaire. Gardez toutefois à l'esprit que si l'une des colonnes est nulle ou n'a aucune valeur, cela vous donnera un résultat NULL. Au lieu de cela, combinez + avec la fonction COALESCE et vous serez défini. 

Voici un exemple: 

SELECT COALESCE(column1,'') + COALESCE(column2,'') FROM table1. 

Pour cet exemple, si column1 est NULL, les résultats de column2 s'afficheront au lieu d'une simple NULL

J'espère que cela t'aides!

6
RubenM

si l'une des colonnes est le numéro que j'ai connu, Oracle pensera '+' en tant qu'opérateur de somme à la place de la concaténation. 

par exemple:

select (id + name) as one from table 1; (id is numeric) 

lève une exception de numéro invalide

dans ce cas, vous pouvez || opérateur qui est concaténation.

select (id || name) as one from table 1;
1
user1313900

Oui, vous pouvez facilement combiner des colonnes telles que la concaténation de données de caractères:

select col1 | col 2 as bothcols from tbl ...

ou en ajoutant (par exemple) des données numériques:

select col1 + col2 as bothcols from tbl ...

Dans ces deux cas, vous vous retrouvez avec une seule colonne bothcols, qui contient les données combinées. Vous devrez peut-être contraindre le type de données si les colonnes ne sont pas compatibles.

1
paxdiablo

Votre syntaxe devrait fonctionner, peut-être ajouter un espace entre les colonnes comme

SELECT something + ' ' + somethingElse as onlyOneColumn FROM someTable

1
Arnoldiusss

select column1 || ' ' || coloumn2 as whole_name FROM tablename; here || est l'opérateur concat utilisé pour les concatter dans une seule colonne et ('') à l'intérieur || utilisé pour l'espace entre deux colonnes.

0
Abhinav Anand

J'espère que cette réponse vous aidera:

SELECT (CAST(id AS NVARCHAR)+','+name) AS COMBINED_COLUMN FROM TABLENAME;
0
Hisham Shaaban