Je vais chercher des données d'une table, mais je souhaite trier des données à l'aide d'une colonne "plancheddatedate" avec la date actuelle sur le dessus (si la date actuelle n'est pas la date la plus proche de la tête) et repose après cela même s'il y a une date ultérieure avec IT.
DATA P>
ScheduledDate 2019-08-27 11:49:57.087 2019-08-27 12:08:56.827 2019-08-27 18:30:00.000 2019-08-20 06:42:16.603 2019-08-20 06:47:33.970 2019-08-20 11:15:36.780 2019-08-20 11:18:20.853 2019-08-20 11:18:56.120 2019-08-20 11:20:16.520 2019-08-20 11:21:09.600 2019-08-21 18:30:00.000 2019-08-21 18:30:00.000 2019-08-21 18:30:00.000 2019-08-22 18:30:00.000 2019-08-22 18:30:00.000 2019-08-22 18:30:00.000 2019-08-26 18:30:00.000 2019-08-28 18:30:00.000
4 Réponses :
Vous pouvez utiliser une clé conditionnelle dans votre commande par code>:
Hey merci ces œuvres, savez-vous comment puis-je le faire en utilisant Linq?
Probablement la manière la plus simple serait d'utiliser un opérateur syndical. Quelque chose comme ceci: Ce n'est pas merveilleusement performant car il nécessite deux relevés de sélection distincts, mais il est facile de lire et de maintenir. P> EDIT: aucune idée de la façon de faire à Linq, mais cela fonctionne pour SQL Server. P> P>
Permet de supposer que votre table est des commandes Ceci trier la date actuelle d'abord et le reste des dates de la commande ascendante. Puisque vous voulez obtenir une date la plus proche sur le dessus lorsque d'aujourd'hui n'est pas disponible, vous devrez peut-être d'abord obtenir la date la plus proche avec une requête différente et remplacer acclamations, p> p> aujourd'hui code> avec à proximitédate code> dans ce qui précède requête. p>
Ainsi, avec l'aide de la requête SQL de @gordonoff 'S SQL, j'ai créé la requête LINQ:
pour LINQ: P>
order by (case when convert(date, scheduleddate) = convert(date, getdate()) then 1 else 2 end), scheduleddate asc
OrderbyDescendant ?
Où est votre code actuel?