sql函数将特定文本替换为count

ckocjqey  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(402)

我正在寻找一个函数来获得以下格式的结果:
输入:

  1. | name |
  2. | -------- |
  3. | DFHG |
  4. | DRTYFGJN |
  5. | FGH |
  6. | FGH |
  7. | NBHFGD |
  8. | OIUKJH |
  9. | RTFHGJ |
  10. | TDHG |

期望输出:

  1. | id | name |
  2. | --- | -------- |
  3. | 1 | DFHG |
  4. | 2 | DRTYFGJN |
  5. | 3 | FGH |
  6. | 4 | FGH |
  7. | 5 | NBHFGD |
  8. | 6 | OIUKJH |
  9. | 7 | RTFHGJ |
  10. | 8 | TDHG |

提前感谢:)

bq9c1y66

bq9c1y661#

第一种选择是使用变量

  1. set @rank=0;
  2. select
  3. @rank:=@rank+1 as id,
  4. name
  5. from myTable
  6. order by
  7. name;

第二种选择是使用 row_number() ,仅当您使用的是mysql 8.0时。

  1. select
  2. row_number() over (order by name) as id,
  3. name
  4. from myTable;

相关问题