J'ai deux colonnes de date. Parfois, ils ont tous les deux des dates (qui seront toujours les mêmes dans les deux colonnes) et parfois l'une est vide et l'autre a une valeur de date. Donc, au lieu de deux colonnes, j'essaie d'en obtenir une. Si l'un d'entre eux est vide, il prendra la valeur de date d'une autre colonne et si les deux ont des valeurs (qui seront toujours les mêmes), il prendra n'importe laquelle des valeurs des deux colonnes.
J'ai essayé les commandes UNION mais cela ne me donne pas le résultat souhaité.
5 Réponses :
Bienvenue dans Stack Overflow!
Vous avez besoin de Coalesce
De plus, à l'avenir, vous devriez insérer des exemples de données et de métadonnées dans le texte de votre question, plutôt que sous forme de pièces jointes.
Merci. c'est quelque chose que je cherchais
Vous pouvez utiliser l'instruction ISNULL s'il s'agit de SQL
SELECT ISNULL(ReturnDate,RepartureDate) as dateAct FROM AviationReservation_dev
UPDATE tableName SET Date1Column = ISNULL(Date1Column, Date2Column); Context: ISNULL ( check_expression , replacement_value ), if first argument is not null, it will use that argument.After the update, delete the other column.
SQL Server propose plusieurs options pour ce scénario. Vous pouvez utiliser COALESCE , ISNULL , ou un instruction CASE .
Sur la base des informations que vous avez fournies, j'utiliserais COALESCE. Il offre plusieurs avantages par rapport à ISNULL et est très simple à mettre en œuvre. Une déclaration CASE semble exagérée pour ce que vous essayez de faire. Consultez le lien ci-dessus pour plus d'informations sur chaque solution.
Exemple: SELECT col1, col2, ..., COALESCE (date1, date2) AS date FROM nomtable
Merci. c'est quelque chose que je cherchais
Il semble qu'il n'y ait aucun cas pour que les deux colonnes soient vides, alors dans de telles conditions, vous pouvez faire quelque chose comme ceci:
SELECT
CASE
WHEN column1 IS NULL THEN column2
WHEN column2 IS NULL THEN column1
ELSE column1 orcolumn2
Merci. c'est quelque chose que je cherchais
Comment utiliser une instruction CASE dans votre requête
Je ne voulais pas copier les images dans votre question, Talha. Je voulais dire mettre la déclaration
Create Tabledans votre question sous forme de texte . De cette façon, les personnes qui vous aident ici n'ont pas à transcrire le code - elles peuvent simplement le copier / coller. Voir Comment demander et exemple reproductible minimal pour plus de détails.