存儲過程排序
『壹』 請問在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一樣,只要把獲得的值賦給變數就可以拿來使用了