-
sql server中这样的sql语句什么意思?5
数据库:sql server 2005
表名:test_liu
表结构:test_liu(id(int),name(varchar),category(varchar))
表中的数据:见附件图片
有没有知道,下面这条sql是什么意思?结果到底是按照什么排序的?
select * from test_liu order by case test_liu.category when 'fruit' then 'vegetable' else 'fruit' end;
哪位能给指点指点,先谢过了!
问题补充:robertliudeqiang 写道这道是考试题? 感觉有故意把人搞晕的味道
order by case 语句可以对某一字段分类进行排序,比如,在这里例子里,对于category字段安装类别的不同分别进行排序。
但是你提供的语句有点复杂,容易把人搞晕,可以写成:
SELECT * FROM test_liu ORDER BY CASE category WHEN 'fruit' THEN 2 ELSE 1 END
效果是一样的,原因是vegetable的首字母v比fruite的f大,他们之间只需要比较大小就行了。
所以,这个语句的意思就是,根据category字段的不同值分别排序,值小的排在前面(某人升序),如果想降序,可以写成
SELECT * FROM test_liu ORDER BY CASE category WHEN 'fruit' THEN 2 ELSE 1 END desc
谢谢你的回复,执行了一下这条sql:SELECT *
FROM test_liu
ORDER BY CASE category
WHEN 'fruit'
THEN 2
ELSE 1
END;
发现结果确实和执行以上sql相同,结果都是:
id name category
3 cabage vegetable
4 radish vegetable
6 tomato both
1 apple fruit
2 banana fruit
5 watermelon fruit
可令人难以理解的是,为什么category为‘both’的tomato会排在‘vegetable’和‘fruit’中间呢?另外,对于category同是'fruit'的记录,又是按照什么排序的,按照id吗?2010年2月25日 10:26
2个答案 按时间排序 按投票排序
-
采纳的答案
引用可令人难以理解的是,为什么category为‘both’的tomato会排在‘vegetable’和‘fruit’中间呢?另外,对于category同是'fruit'的记录,又是按照什么排序的,按照id吗?
1 为什么category为‘both’的tomato会排在‘vegetable’和‘fruit’中间呢?
按照表达式,category为‘both’和‘vegetable’时值是相同的,此时该类显示是按照记录出现的顺序出现的。所以id出现的顺序是3,4,6.
2 对于category同是'fruit'的记录,又是按照什么排序的,按照id吗?
和上面一样,按记录出现的顺序,在你提供的表里,就是按照id。2010年2月27日 10:31
-
这道是考试题? 感觉有故意把人搞晕的味道
order by case 语句可以对某一字段分类进行排序,比如,在这里例子里,对于category字段安装类别的不同分别进行排序。
但是你提供的语句有点复杂,容易把人搞晕,可以写成:
SELECT * FROM test_liu ORDER BY CASE category WHEN 'fruit' THEN 2 ELSE 1 END
效果是一样的,原因是vegetable的首字母v比fruite的f大,他们之间只需要比较大小就行了。
所以,这个语句的意思就是,根据category字段的不同值分别排序,值小的排在前面(某人升序),如果想降序,可以写成
SELECT * FROM test_liu ORDER BY CASE category WHEN 'fruit' THEN 2 ELSE 1 END desc
2010年2月25日 11:48
相关推荐
首先,标题中的"sqlserver自动生成sql语句工具"指的是可以分析SQL Server数据库结构和数据,自动生成对应的SQL创建语句的软件。这种工具通常能帮助数据库管理员快速获取数据库的定义,便于备份、迁移或在其他环境中...
### SQL语句实现跨SQL Server数据库操作实例 #### 背景介绍 在日常的数据库管理与开发工作中,经常会遇到需要在不同的SQL Server实例之间进行数据交换的情况。这些操作包括但不限于查询不同数据库中的数据、将数据...
非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK
它允许数据库管理员和开发人员实时跟踪和记录数据库服务器上的事件,包括SQL语句的执行情况,以优化性能、查找问题或调试应用程序。在公司环境中,由于未安装官方的Profiler,你可能已经下载了第三方的...
### SQL Server 2005 基本方法...以上介绍了 SQL Server 2005 中的基本方法与常用语句,涵盖了数据库管理与数据操作的核心技能。通过熟练掌握这些知识,可以有效地管理和维护数据库系统,提高数据处理的效率与准确性。
SQL Server 中存储过程比直接运行 SQL 语句慢的原因 在 SQL Server 中,存储过程比直接运行 SQL 语句慢的原因是 Parameter sniffing 问题。Parameter sniffing 是指 SQL Server 在执行存储过程时,使用参数的统计...
下面我们将介绍如何使用一条 Sql Server 语句删除当前数据库中所有表的数据。 删除所有表数据 删除所有表数据的语句使用了存储过程来实现。首先,我们需要创建一个存储过程 `sp_DeleteAllData`,该过程将删除所有...
SQL Server 数据自动生成SQL语句是一项实用的功能,它极大地简化了数据迁移或备份的过程。这个功能使得用户能够快速地根据数据库中的表结构和已有数据,生成相应的SQL插入语句,以便将这些数据移植到其他数据库系统...
标题提到的“Excel根据表格,批量生成sqlserver语句,生成建表语句,自行到数据库中执行”,就是一种利用Excel宏自动化生成SQL Server建表语句的方法。这种方法适用于已有数据结构清晰的Excel表格,通过特定的规则...
针对这个需求,存在一种名为“SQLServer数据库表中数据导出成SQL语句工具”的实用程序,它能够帮助我们高效地完成这项任务。这个工具通常以MHT(Multi-Part/Related)格式提供,这是一种单一文件Web页面存储格式,...
标题提到的“将sqlserver中的数据导出成为sql语句”是指将SQL Server数据库中的表结构和数据转换为一系列的INSERT INTO SQL语句,这样就可以通过执行这些语句在另一个数据库中重建相同的数据。这一过程对于开发、...
在 SQL Server 2008 中,如果我们要导入超大 SQL 脚本文件(超过 10MB),使用 SQL Management Studio 查询工具可能无法打开脚本文件。这时,我们可以使用 osql 工具来导入超大 SQL 脚本文件。 osql 工具的使用格式...
在SQL Server数据库管理系统中,死锁是一个...总的来说,通过监控未提交事务、查找阻塞和死锁的SQL语句,以及适时使用`KILL`命令,我们可以有效地管理和解决SQL Server中的死锁问题,确保数据库系统的稳定和高效运行。
MySQL可能不支持某些SQL Server特有的高级特性,如特定的函数或T-SQL语句,因此转换过程中可能需要手动调整。 转换工具通常会提供图形化界面,简化操作流程,但也有一些命令行工具,适合开发者进行更精细的控制。...
《SQLServer实用SQL语句大全》是一本涵盖了SQL Server数据库管理与开发的全面指南,旨在帮助用户深入理解和熟练运用SQL语言。此书共分为15个章节,每一章都精心设计,理论结合实践,旨在让读者能够从基础到高级逐步...
在SQL Server 2005中,格式化SQL语句是一项重要的任务,它能帮助数据库管理员和开发人员更好地理解和维护复杂的查询。一个清晰、整洁的SQL语句不仅可以提高代码的可读性,也有助于减少错误和提高工作效率。本文将...
存储过程是一组预编译的SQL语句,可提高性能并简化代码维护。触发器则是在特定数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行的代码。 四、查询语言 SQL Server中的查询主要通过SELECT语句实现,可以进行单...
SQL Server 中的动态 SQL 语句是一种灵活的查询方式,它可以根据不同的情况生成不同的 SQL 语句。动态 SQL 语句可以用来实现复杂的业务逻辑,提高查询效率和灵活性。 普通 SQL 语句和动态 SQL 语句的区别 普通 SQL...
–我的电脑–控制面板–管理工具–服务–右键SQLSERVERAGENT–属性–启动类型–选择”自动启动”–确定. 2、SQL Server Management Studio — SQL Server 代理 — 作业 — 新建作业 作业设置如下: “常规” — 设置...
这篇文档主要讲述了如何使用SQL语句在SQL Server中创建用户角色并进行授权。首先,我们从创建登录账户开始,然后创建数据库用户,接着将登录账户与数据库用户关联,并通过加入数据库角色来赋予用户特定的权限。 1. ...