J'écris un code SQL à exécuter dans MapBasic (le langage de programmation de MapInfo). La meilleure façon de décrire la question est avec un exemple:SQL - flux de données de requête divisé en 2 tableaux distincts [Optimisation théorique]
Je veux sélectionner tous les enregistrements où ShipType = "Barge" dans une requête nommée Barges et je veux que tous les enregistrements restants soient placés dans une requête OtherShips.
je pourrais simplement utiliser les commandes SQL suivantes:
select * from ShipsTable where ShipType = "Barge" into Barges
select * from ShipsTable where ShipType <> "Barge" into OtherShips
C'est bien et tout, mais je ne peux pas empêcher de penser que cela est inefficace. SQL ne cherchera-t-il pas deux fois dans la base de données? Ne trouvera-t-il pas les lignes de données qui correspondent à la 2ème requête pendant le traitement du 1er?
, il serait plus rapide s'il y avait une commande comme lieu:
select * from ShipsTable where ShipType = "Barge" into Barges ELSE into OtherShips
Ma question est, pouvez-vous faire cela? Y at-il une commande qui correspond à cette spécification?
Merci,
Ah, réponse similaire de Uffe sur le groupe MapInfo-L, n'avait pas encore vu. Il semblerait que vous ayez fait quelques tests et que cela vous donne un peu plus de performance. –
Haha merci pour la réponse malgré tout! :) – Sancarn