开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 226|回复: 8
收起左侧

[已解决] sql排序

 关闭 [复制链接]
结帖率:98% (42/43)
发表于 2026-6-11 07:57:37 | 显示全部楼层 |阅读模式   江西省南昌市
100精币
我有一个sql数据库,里面有一个表叫做“table1”。里面有两个字段“UID”和“num”,但是是乱序的。我现在想把他根据num从大到小去排序做成一个新的表,然后再文本处理一下后输出

最佳答案

查看完整内容

[e=0].版本 2 .支持库 spec .支持库 eDB .子程序 子程序, 逻辑型 .参数 数据库路径, 文本型 .参数 新表名, 文本型 .局部变量 数据库连接, 数据库连接 .局部变量 记录集, 记录集 .局部变量 SQL语句, 文本型 .局部变量 UID值, 文本型 .局部变量 num值, 文本型 .局部变量 处理结果, 文本型 .局部变量 行数, 整数型 .如果真 (数据库连接.连接Access (数据库路径, “”) = 假) 调试输出 (“数据库连接失败”) 返回 (假) .如果 ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:69% (20/29)

签到天数: 25 天

发表于 2026-6-11 07:57:38 | 显示全部楼层   江西省赣州市
  
子程序名返回值类型公开备 注
子程序逻辑型 
参数名类 型参考可空数组备 注
数据库路径文本型
新表名文本型
变量名类 型静态数组备 注
数据库连接数据库连接 
记录集记录集 
SQL语句文本型 
UID值文本型 
num值文本型 
处理结果文本型 
行数整数型 
如果真 (数据库连接.连接Access (数据库路径, “”) = )
调试输出 (“数据库连接失败”)
返回 ()
SQL语句 = “DROP TABLE ” + 新表名
数据库连接.执行SQL (SQL语句, )
SQL语句 = “SELECT UID, num INTO ” + 新表名 + “ FROM table1 ORDER BY num DESC”
如果真 (数据库连接.执行SQL (SQL语句, ) = )
调试输出 (“创建表失败,请检查table1是否存在”)
数据库连接.关闭 ()
返回 ()
调试输出 (“表创建成功,共 ”到文本 (记录集.记录数量)“ 条记录”)
记录集.置连接 (数据库连接)
SQL语句 = “SELECT * FROM ” + 新表名
如果真 (记录集.打开 (SQL语句, #SQL语句, ))
调试输出 (“打开记录集失败”)
数据库连接.关闭 ()
返回 ()

记录集.到首记录 ()
行数 = 0
判断循环首 (记录集.尾记录后 = )
记录集.读文本 (“UID”, UID值)
记录集.读文本 (“num”, num值)
处理结果 = “第”到文本 (行数 + 1)“行 UID:” + UID值 + “ num:” + num值
调试输出 (处理结果)
行数 = 行数 + 1
记录集.到下一条 ()
判断循环尾 ()
记录集.关闭 ()
数据库连接.关闭 ()
调试输出 (“处理完成,共处理 ” + 到文本 (行数) + “ 条记录”)
返回 ()


i支持库列表   支持库注释   
spec特殊功能支持库
eDB数据库操作支持库

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:95% (21/22)

签到天数: 26 天

发表于 2026-6-11 08:05:21 | 显示全部楼层   浙江省湖州市
[SQL] 纯文本查看 复制代码
SELECT UID,num FROM table1 ORDER BY num DESC;
回复

使用道具 举报

结帖率:98% (42/43)

签到天数: 5 天

 楼主| 发表于 2026-6-11 08:07:25 | 显示全部楼层   江西省南昌市

我知道用这个语句,但易语言我不知道咋弄,用sql.执行sql语句不返回table
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 23 天

发表于 2026-6-11 09:04:34 | 显示全部楼层   广东省深圳市
create new_table as select UID,num from table1 order by num desc;

使用 select UID,num from table1 order by num desc cha询按num排序后的结果,create new_table as...根据后面的cha询结果生成一张new_table表
回复

使用道具 举报

结帖率:67% (2/3)

签到天数: 14 天

发表于 2026-6-11 09:34:09 | 显示全部楼层   湖北省黄冈市
StarAdmire 发表于 2026-6-11 08:07
我知道用这个语句,但易语言我不知道咋弄,用sql.执行sql语句不返回table

具体要看你SQL语句用什么模块。
回复

使用道具 举报

结帖率:93% (42/45)

签到天数: 14 天

发表于 2026-6-11 14:09:52 | 显示全部楼层   重庆市重庆市
StarAdmire 发表于 2026-6-11 08:07
我知道用这个语句,但易语言我不知道咋弄,用sql.执行sql语句不返回table

那就是你提问有问题, 你应该问"我用了XX代码/XX库连接的数据, 但是不知道如何执行命令去cha询", 而不是你的表叫什么, 字段叫什么, 顺序是要怎么样的, 因为你都知道语句
回复

使用道具 举报

签到天数: 21 天

发表于 2026-6-11 15:17:00 | 显示全部楼层   辽宁省辽阳市
最好把需求一次性说完整,创建个新表以后要干嘛?文本处理什么?
万一一条sql全解决了呢
回复

使用道具 举报

签到天数: 21 天

发表于 2026-6-11 19:52:06 | 显示全部楼层   福建省宁德市
在易语言中实现 SQL 排序并创建新表,可以使用以下方法:

1. 使用 CREATE TABLE ... AS SELECT 语句:
create new_table as select UID,num from table1 order by num desc;

2. 或者使用 SELECT ... INTO 语句(Access 数据库):
SELECT UID, num INTO 新表名 FROM table1 ORDER BY num DESC

3. 在易语言中使用 eDB 支持库操作:
- 先连接数据库
- 执行 DROP TABLE 删除旧表(如果存在)
- 执行 SELECT INTO 创建新表并排序
- 打开记录集读取数据进行文本处理
- 关闭连接

具体代码可以参考 6 楼的详细实现。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表