Existe-t-il un moyen de trier par colonne s'il existe réellement?Commande de IF EXISTS
-à-dire: SELECT * ORDER BY IF(EXISTS(order_column), order_column ASC, name_column DESC)
Merci!
Existe-t-il un moyen de trier par colonne s'il existe réellement?Commande de IF EXISTS
-à-dire: SELECT * ORDER BY IF(EXISTS(order_column), order_column ASC, name_column DESC)
Merci!
Vous pouvez utiliser ISNULL lieu
ORDER BY
ISNULL(order_column, name_column)
Je ne sais pas comment vous ajoutez le tho ou ASC ... DESC
Non, n'EXISTE doit être utilisé avec une sous-requête et dans la clause WHERE . Pourriez-vous être plus précis? Que voulez-vous dire par «colonne existante»?
Voici mon hypothèse non vérifiée:
ORDER BY IF(ISNULL(order_column), "", order_column) ASC, name_column DESC
Si order_column est NULL, une chaîne vide sera remplacé, ce qui n'affectera le genre. Si ce n'est pas NULL, il sera trié avant la colonne name.
Si Mysql ne vous laissera pas utiliser une expression dans la ORDER BY, vous pouvez toujours créer une colonne « artificielle » dans le SELECT:
SELECT
IF (ISNULL(order_column), " ", order_column)
AS my_order_column,
name_column
FROM table
ORDER BY my_order_column ASC, name_column DESC.
J'ai trouvé quelque chose de similaire moi-même, mais comme j'ai besoin de trier par order_column seulement s'il existe réellement, cela ne marchera pas ... – Mission
L'un d'entre nous est très malentendu. Pouvez-vous nous donner un exemple de données possibles et le résultat que vous vous attendez à voir? –
La meilleure façon de le faire est de créer une expression évaluez le if existe dans le cadre de la requête select. Vous pouvez avoir le retour d'expression order_column ou name_column
implemention dépend de la SQL que vous utilisez, mais là, vous pouvez nous normallly IIf (...) mais vous devrez peut-être vérifier null
Que voulez-vous dire exactement : Voulez-vous vérifier si la colonne de table existe ou si elle contient des valeurs? Habituellement 'EXISTS' est utilisé en combinaison avec des sous-requêtes afin de vérifier si la sous-requête retourne des enregistrements. Si vous voulez vérifier si la colonne actuelle existe, vous pouvez le faire avec 'SHOW COLUMNS'. –
et s'il vous plaît expliquer ce que vous entendez par "si elle existe", si je prends la signification littérale, si la colonne n'existe pas, la requête ne s'exécutera pas, mais produira une erreur. Si vous voulez dire "si la valeur dans la colonne n'est pas nulle", veuillez éditer votre question pour le dire. –
Je veux vérifier s'il existe réellement. Désolé de ne pas être clair à ce sujet. – Mission