MySQL 5.7版本不支持ROW_NUMBER()函数

MySQL 5.7版本不支持ROW_NUMBER()函数。但是,你可以使用变量来手动实现这个功能。以下是一个示例查询语句:

SELECT 
  @row_number:=@row_number+1 AS row_num,
  column1, 
  column2, 
  ...
FROM 
  (SELECT @row_number:=0) AS t,
  your_table
ORDER BY column1;

在这个语句中,我们使用了一个变量@row_number来模拟生成序号。每次遍历一条记录,@row_number的值加1,并将其作为row_num的别名返回。

your_table是你要查询的表名,column1, column2, …是你要查询的列名。你可以根据需要自定义排序规则和返回的序号列名。

请注意,在使用变量的情况下,查询结果的序号仅仅是一种显示效果,并不会对表的实际数据进行修改。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL 5.7版本中,没有内置的ROW_NUMBER函数的写法。如果你需要实现类似ROW_NUMBER功能,可以使用变量和子查询来实现。以下是一种实现方式: ```sql CREATE TABLE TZ_DIAG_STAND SELECT * FROM ( SELECT @RN := CASE WHEN @DIAGNOSIS_NAME = DIAGNOSIS_NAME THEN @RN + 1 ELSE 1 END AS RN, @DIAGNOSIS_NAME := DIAGNOSIS_NAME AS DIAG_NAME, MASTER_ID, NUM FROM ( SELECT T1.DIAGNOSIS_NAME, MASTER_ID, COUNT(1) NUM FROM ( SELECT MASTER_ID, DIAGNOSIS_NAME FROM ICD_10 WHERE MASTER_ID IS NOT NULL AND DIAGNOSIS_NAME = '妊娠合并肠炎' ) T1 GROUP BY T1.DIAGNOSIS_NAME, MASTER_ID ORDER BY DIAGNOSIS_NAME, NUM DESC ) A, (SELECT @RN := 0, @DIAGNOSIS_NAME := 0) B ) A WHERE RN = 1; ``` 这个查询使用了变量@RN和@DIAGNOSIS_NAME来模拟ROW_NUMBER函数的功能,并在最外层的WHERE子句中选择RN等于1的记录。这样就可以获得诊断编码出现最多的记录。请注意,这只是一种实现方式,具体的查询语句可能会根据实际情况有所调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL5.7版本没有row_number函数的写法](https://blog.csdn.net/qq_43278973/article/details/120205035)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值