You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需求:将单条女性姓名数据调换至两条男性姓名数据之间

问题描述

需要将单条女性性别数据调整至两条男性性别数据之间,具体输入输出如下:

输入数据

Id   Name  Sal   Gender
1     AA   2000   M
2     BB   1500   M
3     CC   3000   F

期望输出

Id   Name  Sal   Gender
1     AA   2000   M
3     CC   3000   F
2     BB   1500   M

解决方案

1. SQL实现(以MySQL为例)

通过自定义排序规则,让第一条男性数据先输出,接着是女性数据,最后是第二条男性数据:

SELECT Id, Name, Sal, Gender
FROM your_table
ORDER BY
  -- 优先排序男性,再排女性
  CASE Gender WHEN 'M' THEN 0 ELSE 1 END,
  -- 让Id=1的男性排在Id=2的男性之前,女性插在中间
  CASE WHEN Id = 2 THEN 2 ELSE 1 END;

2. 文本文件处理(用awk脚本)

如果是处理纯文本格式的数据,可以用awk脚本实现:

# 打印表头
NR == 1 { print; next }
# 先打印第一条男性数据
$4 == "M" && $1 == 1 { print; mark = 1 }
# 当已打印第一条男性后,打印女性数据
$4 == "F" && mark { print; mark = 0 }
# 最后打印第二条男性数据
$4 == "M" && $1 == 2 { print }

内容的提问来源于stack exchange,提问作者giridaran l

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:47:41