i ont une requêtePouvons-nous remplacer toutes les valeurs de la colonne par des numéros de ligne?
select name,name_order from name_table where dept_id=XXX;
et l'ensemble de résultats est
+------------+--------+
| name_order | name |
+------------+--------+
| 0 | One |
| 1 | Two |
| 2 | Three |
| 3 | four |
| 6 | five |
| 9 | six |
+------------+--------+
i mettre à jour le name_order pour le dept_id, de telle sorte qu'elles commencent à partir de 0 et incrémentée (pour que dept_id seulement)
Note: name_order n'est pas un indice
la sortie viennent devrait être comme
+------------+--------+
| name_order | name |
+------------+--------+
| 0 | One |
| 1 | Two |
| 2 | Three |
| 3 | four |
| 4 | five |
| 5 | six |
+------------+--------+
i essayé la fonction d'analyse rowNumber(), il n'a pas aidé
update name_table set name_order = (
ROW_NUMBER() OVER (PARTITION BY dept_id ORDER BY name_order)-1
)
where dept_id=XXX order by name_order
Merci à l'avance R
Ce serait plus proche de la question de l'OP: http://www.sqlfiddle.com/#!4/f02c1/2 – Passerby
@Passerby Oui, je didn Ne considérez pas le dept_id.Je mets à jour ma réponse. – Gentlezerg