存储过程排序
‘壹’ 请问在sql SERVER的存储过程中如何按指定字段排序
你可以在存储过程内动态生成sql语句再执行,但是效率会低些。建议在存储过程内写几个判段语句。
if('code_id'==@orderColumn)
begin
end
else if('code_name'==@orderColumn)
begin end
‘贰’ 存储过程排序问题
得用动态语句:
Create PROCEDURE P_Test
(
@SortBy NVARCHAR(100) = 'Column1'
)
AS
BEGIN
exec('
SELECT * FROM
( SELECT row_number() OVER ( ORDER BY '+@SortBy+' ASC ) AS Row_ID, t.* FROM
(
Select * from dbo.Table) AS t
)
AS page WHERE page.Row_ID BETWEEN 1 AND 10
')
END
‘叁’ sql存储过程 进行价格排序
SELECT t1.商品名称,t1.商品价格,t2.类别名 FROM 商品 as t1 LEFT JOIN 商品类别 as t2 ON (t1.商品类别编码=t2.商品类别编码) ORDER BY t1.商品价格 ASC
‘肆’ 向Mysql表1的A,B,C三列插入数据,D列根据C列数据生成降序排序,用存储过程怎么写
select agentid,sum(good) as good,sum(normal) as normal,sum(bad) as bad
from
(select agentid,1 as good,0 as normal,0 as bad
from A where content=1
union all
select agentid,0 as good,1 as normal,0 as bad
from A where content=2
union all
select agentid,0 as good,0 as normal,1 as bad
from A where content=3
)B
group by agentid
‘伍’ ORACLE 存储过程插入数据排序混乱
从给出的程序看,执行完程序后,通过xx字段排序查询就可以了。不过给出的程序有点问题,是个死循环。(to_date('01/01/2010','mm/dd/yyyy')< to_date('12/31/2015','mm/dd/yyyy')) 这里不含变量,因此这个条件永远满足。改成如下程序就可以了。
DECLARE
adddays NUMBER:=0;
i NUMBER:=5;
--步长
BEGIN
WHILE to_date('01/01/2010','mm/dd/yyyy')+adddays<=
to_date('12/31/2015','mm/dd/yyyy')
LOOP
INSERT INTO
XX(XX)values(to_date('01/01/2010','mm/dd/yyyy')+adddays);
adddays:=adddays+i;
END loop;
END;
运行结果:
‘陆’ SQL如何修改存储过程中的排序规则
改变数据库的排序规则(做ALTER之前,要中断所有用户对此数据库的访问)
语法:
use
master
go
ALTER
DATABASE
数据库名
COLLATE
排序规则名
例子:
use
master
go
ALTER
DATABASE
luwanzhufa
COLLATE
Chinese_PRC_CS_AS
Chinese_PRC_CS_AS这个是简体中文。而且区分大小写的排序规则。
192
Japanese_BIN
二进制顺序、用于
932(日文)字符集。
193
Japanese_CI_AS
字典顺序、不区分大小写、用于
932(日文)字符集。
200
Japanese_CS_AS
字典顺序、区分大小写、用于
932(日文)字符集。
198
Chinese_PRC_BIN
二进制顺序、用于
936(简体中文)字符集。
199
Chinese_PRC_CI_AS
字典顺序、不区分大小写、用于
936(简体中文)字符集。
203
Chinese_PRC_CS_AS
字典顺序、区分大小写、用于
936(简体中文)字符集。
‘柒’ sql 存储过程中 排序问题
ClassParent 把这个字段换成varchar字段类型,注意长度,默认是50,不需要那么长的话就改下,如果不够用的话就加一下,自己看着办。
‘捌’ oracle怎么在存储过程中对表进行排序求和
排序用order by ,求和用sum 跟普通sql一样,只要把获得的值赋给变量就可以拿来使用了