A. 第六十四章 sql命令 ORDER BY(二)
下面的示例按照 RowID 的反向顺序对记录进行排序:
下面两个示例展示了在 ORDER BY 子句中指定排序列的不同方法。
下面两个查询是等价的;
第一种方法使用列名作为排序项,第二种方法使用列号(选择项列表中项目的序号):
下面的示例按包含IRIS列表数据的字段进行排序。
因为IRIS列表是一个以格式化字符开始的编码字符串,所以本例使用 $LISTTOSTRING 来按实际字段数据值排序,而不是按列表元素编码:
动态SQL可以使用输入参数为 ORDER BY 子句提供文字值;
它不能使用输入参数来提供字段名、字段别名、字段号或排序关键字。
下面的动态SQL示例使用输入参数按名字对结果集记录进行排序:
以下基于游标的嵌入式SQL示例执行相同的操作:
ORDER BY 子句中使用的每个字面值都会生成一个不同的缓存查询。
不对 ORDER BY 字面值执行字面值替换。
这是因为 ORDER BY 可以使用整数来指定列号。
更改这个整数将导致一个完全不同的查询。
可以使用 CASE 表达式定义一个通用查询,该查询可以根据提供的主机变量值进行排序。
例如,下面的示例可以根据名称或年龄排序,这取决于 var 的值:
下面的示例指定了两个 CASE 表达式。
它按任何情况计算为true进行排序。
如果两种情况都为真,则按国家排序,在国家内按城市排序:
ASC 和 DESC 参数在 CASE END 关键字之后指定。
注意,在 CASE 表达式中必须根据列名指定字段。
在此上下文中,不能指定列别名或列号。
ORDER BY ordering-item 的值不应该超过(大约) 400 到 500 个字符,这取决于 ordering-item 的数量和其他因素。
如果一个 ordering-item 值超过这个最大长度,则运行带有 ORDER BY 子句的查询可能会导致 SQLCODE -400 致命错误。
这是因为全局引用的最大编码长度有限制,这是一个固定的 IRIS系统限制。
为了防止这个问题,在作为 ORDER BY 子句基础的字段的排序规则设置中使用截断长度。
例如,以下查询超过了这个限制:
添加一个 maxlen 截断长度的排序函数允许该程序成功执行:
IRIS将字段的已整理值截断为 400 个字符。
请记住,如果字段内容在前 400 个字符内不是唯一的,则数据可能稍有混乱,但这种情况不太可能发生。
如果出现这种情况,可以尝试通过使用更大的值进行截断来避免显示无序的数据;
但是,如果值太大,将导致 <SUBSCRIPT> 错误。
还要注意,最大长度是全局引用的整个编码长度,包括全局名称的长度。
它不是简单的下标。
B. sql数据排序
最简单的方法是增加一个置顶字段,每个公司只有唯一一个。然后先按置顶字段排序,再按时间排序。
select * from company,proct
where company.id = proct.company_id
order by proct.ding ,datetime
如果非要在一个query里解决。
select count(*),* from company,proct
where company.id = proct.company_id
group by company.id
union
select 1,* from company,proct
where company.id = proct.company_id
and proct.id not in (
select proct.id from (select count(*),* from company,proct
where company.id = proct.company_id
group by company.id))
order by datetime
但是这样的效率非常差。
C. 通用SQL语句排序的方法
前十名:
select top 10 id,name,score from student order by score desc
第三名:
select top 1 * from (select top 3 * from [student] order by score desc) as tb1 order by score asc
注:使用 (top * asc )desc 这种方式在 rownumber 方法出来以前是最常用的sqlserver处理分页取值的方式
D. 如何用SQL进行排序
您到底是什么意思?是要生成序号?
是不是这样:
SELECT BMMC,序号=
replace(
replace(
replace(
replace(
REPLACE(BMMC,'部门',''),
'a','00'),'b','01'),'c','02')
这是生成部门编号,与部门名称中的字母顺序一致。
如果字母只是ABC这几个,这样就可以了,不需要存储过程。
E. sql的倒序排列命令怎么输入
Select * From 表名 Where ID In (Select Max From 表名 Group By 过滤重复的项名) 。
SQL语言,是结构化查询语言(StructuredQueryLanguage)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
F. sql排除为空并且排序的命令
|desc]进行排序,nulls last 时,强制null放在最后,不为null的按声明顺序[asc|desc]进行排序
order by colum asc 时,null默认被放在最前,order by colum desc 时,null默认被放在最后,
ORDER BY IF(ISNULL(update_date),0,1) null被强制放在最前,不为null的按声明顺序[asc|desc]进行排序
ORDER BY IF(ISNULL(update_date),1,0) null被强制放在最后,不为null的按声明顺序[asc|desc]进行排序
G. sql中排序要怎么写
1.语法:
SELECT "栏位名"
FROM "表格名"
[WHERE "条件"]
ORDER BY "栏位名" [ASC, DESC];
2.注意事项:先分组再排序,运用的是ORDER BY,后面加的是你要按什么排序,如果按照升序可以不用写或者加上ASC;如果是降序,要加上DESC。
3.例子:SELECT id FROM user ORDER BY id;