Cela peut sembler stupide, mais je veux savoir comment (si possible) de compter de 0 à 10 par une commande SQL. Je veux dire que je veux une requête SQL qui produit une colonne constituée de chiffres de 0 à 10, comme celui-ci: p>
0
1
2
3
4
5
6
7
8
9
10
P>
J'utilise actuellement MySQL 5.0 P>
5 Réponses :
Utilisation de PL SQL Nous pouvons faire comme suit
pour i en 1..1000 boucle p> boucle d'extrémité p> est-ce utile Pour résoudre votre doute? p> p>
Désolé j'ai oublié. Je veux avoir ces valeurs dans une vue simple à la jointure externe avec une table qui n'a pas toutes ces valeurs comme IDS, où j'ai besoin de tous. Bien sûr, je peux créer une table et insérer ces valeurs un par un, mais j'étais curieux de ne pas avoir besoin de créer une autre table pour une telle chose simple.
select number as n from master..spt_values where type='p' and number between 0 and 10 Sorry I just noticed you were in MYSQL, this is MSSQL Only.
Donc, il n'y a pas de syntaxe SQL standard pour accomplir une telle chose?
Cela vient de lire des valeurs de la table système SQL, je ne connais pas avec MySQL, donc la seule chose que je pourrais vous suggérer est de créer une table de chiffres - je pense que beaucoup de gens font et utilisent cela.
La méthode "Standard" dans MS SQL Server s'applique apparemment à MySQL, en jugeant à la question de la question Matthew Flaschen vous a référé à la séquence de numéro dans MySQL. Lire les deux questions, je dirais que la réponse de SPE109 est la meilleure. Créer une table 'utilitaire'. Dans MS SQL Server, maître.dbo.spt_values ne dispose que de 0-2048, et est «Yuck» une table principale. Dans mon code, je crée ma propre table qui est toujours autour, qui est toujours peuplée et non gêlée. Je me réfère comme ceci comme suit: sélectionnez n des chiffres où n> = 1 et n <= 10. La même approche, garantie de travailler dans MySQL. Bonne chance!
Vous pouvez utiliser une variable pour cela (bien que je ne puisse pas préciser à 100% sur vos exigences): Vous pouvez inclure les autres colonnes que vous aimez - je viens d'utiliser < code> ID code> à titre d'exemple. Si la table à partir de laquelle vous sélectionnez a au moins 11 lignes, cela fonctionnera. Le parenthèses sélectionné code> est exécuté en premier et initialise la variable @i code> à zéro. P> p>
Désolé, je ne connais pas de variables. S'il vous plaît donnez-moi une vue simple qui contient des valeurs 0 à 10
Si l'idée d'avoir une vue à laquelle vous pouvez rejoindre une table existante est uniquement pour obtenir une liste de numéros séquentiels, je pense que vous rendez les choses plus difficiles pour vous-même, tout en impliquant une jointure où l'on n'est pas avait besoin. Pouvez-vous modifier votre question pour que vos exigences exactes soient claires?
C'est un moyen élégant de générer une plage
juste pour référence, Cette réponse montre que cela puisse être fait dans Oracle, Postgres et MS SQL-mais pas MySQL, Hélas. P>
Si vous voulez simplement que les valeurs exactes em> 0 à 10, vous travaillez dans tous les SGBD: qui dit, le moyen le plus simple de résoudre des problèmes Lorsque vous avez besoin d'une liste séquentielle d'entiers consiste à créer un numéros permanent ou une table de conclusion contenant cette liste. De cette manière, cela n'aura pas d'importance à la manière dont il n'a pas été renseigné, car il n'a besoin que de peupler une fois. P> p>
Tout dialecte SQL ou SQL particulier?
Voir Séquence de numéro dans MySQL
@egrunin, c'est la même chose que la question préalable est la question. La seule différence réelle est celle utilisée 0-9 à titre d'exemple.
@Matthew Flaschen: Ah, je n'avais pas vu la réponse de @geertjanvdk, qui traite du problème. Je vais lui donner un +1 afin qu'il monte au sommet :)