㈠ sql中如何實現 自動更新排序
我提供一個方法
select id int identity(1,1)) , 列一 from 表 into #T;
update 表 set 表.列二 = (select id from #T where #T.列一 = 表.列一 );
dop table #T;
㈡ SQL怎麼將查詢排序後的數據更新到原本的表中
簡單回答:不能,也不應該。
要依某個順序查詢,請加入明確的排序指令,否則系統就會依系統認為最方便高效的方式給你列出數據。
相關說明:
1、當前主流的使用SQL操作的數據數主要是Oracle、MS Sql Server等等。它們有一個共同的做法,就是用戶不應對表中的物理記錄的順序進行關心。如果用戶需要對查詢出的記錄進行排序的話,請加入排序指令,這樣就能按用戶的「心意」進行排序列出了。
2、之所以用戶不應對表中的特理記錄的順序進行關心,那是因為通常情況下,一個表中的數據是會經常被更改、修正、刪增的,如果每一次的改動都要將整個表的物理順序進行修正的話,系統的運行效率就會嚴重低下。
3、如果你實在糾結,實在要在明確的排序指令的情況下查出的數據也按你的想法的順序出來的話,一般來說,小的數據表你可以將原來的數據刪除,然後重新追回進去。具體的做法類似於先SELECT,加order排序指令插入到臨時表,然後刪除原來表中的數據,然後insert臨時表中的數據到原表中。注意的是,這種方法對數據量不大的表,多數情況下有效,但對大量數據的表,很可能無效,因為系統為了效率,會按它的「想法」去讀寫數據。
㈢ 如何用SQL語句修改欄位的排序規則
創建數據表的時候,欄位在表中的排列位置就已經確定了。不過,使用ALTER TABLE語句可以改變欄位在表中的排列位置。
在MySQL中,修改欄位排列位置的基本語法格式如下:
ALTER TABLE 表名 MODIFY 欄位名1 數據類型 FIRST | AFTER 欄位名2;
其中:
•欄位名1:表示需要修改位置的欄位的名稱。
•數據類型:表示「欄位名1」的數據類型。
•FIRST:指定位置為表的第一個位置。
•AFTER 欄位名2:指定「欄位名1」插入在「欄位名2」之後。
MySQL欄位修改到第一個位置
FIRST參數可以指定欄位為表的第一個欄位。
實例:將ke369表中的stu_name欄位修改為該表的第一個欄位。操作步驟如下:
1. 使用DESC語句查看ke369表的結構,以查看stu_name欄位的排列位置。如下圖所示:
查看stu_name欄位的排列位置
從查詢結果中可以看出,stu_ www.hbbz08.com name欄位為ke369表的第二個欄位。
2. 將ke369表中的stu_name欄位修改為該表的第一個欄位。SQL代碼如下:
ALTER TABLE ke369 MODIFY stu_name VARCHAR(30) FIRST;
在DOS提示符窗口中查看MySQL欄位修改到第一個位置的操作效果。如下圖所示:
在DOS提示符窗口中查看MySQL欄位修改到第一個位置的操作效果
代碼執行完畢,結果顯示stu_name欄位修改成功。
3. 使用DESC語句重新查看ke369表的結構,以檢查stu_name欄位在該表中的新位置。如下圖所示:
檢查stu_name欄位在該表中的新位置
查詢結果顯示,stu_name欄位已經成為了ke369表中的第一個欄位,操作成功。
MySQL欄位修改到指定位置
「AFTER 欄位名2」參數可以將欄位重新設置到表中指定的欄位之後。
實例:將ke369表中num欄位更改到address欄位之後。操作步驟如下:
1. 從上圖中可以看出,num欄位排在address欄位的前面。
2. 將ke369表中num欄位更改到address欄位之後。SQL代碼如下:
ALTER TABLE ke369 MODIFY num INT(8) AFTER address;
在DOS提示符窗口中查看MySQL欄位修改到指定位置的操作效果。如下圖所示:
在DOS提示符窗口中查看MySQL欄位修改到指定位置的操作效果
代碼執行完畢,結果顯示num欄位修改成功。
3. 使用DESC語句重新查看ke369表的結構,以便檢查num欄位是否排在了address欄位後面。如下圖所示:
㈣ 修改SQL資料庫排序規則修改表欄位排序規則
修改SQL資料庫排序規則修改表欄位排序規則
修改SQL資料庫排序規則:
1.修改為單用戶模式
2.然後關閉所有的查詢窗口,修改Options的Collocation屬性,如:Chinese_PRC_90_CI_AS
3.再修改為多用戶模式
修改表欄位排序規則:
使用存儲過程處理,可以指定對應的表,
存儲過程處理步驟:
1-刪除外鍵
(含對應的sql語句)
2-刪除主鍵
(含對應的sql語句)
2.5-刪除索引
(含對應的sql語句)
3-修改排序規則
(含對應的sql語句)
4-生成主鍵
(含對應的sql語句)
5-生成外鍵
(含對應的sql語句)
6-生成索引
(含對應的sql語句)
7-執行對應的sql語句及導出
或
不執行對應的sql語句只導出
存儲過程下載:
㈤ sql 排序 update
如果你是要把B=1的那條數據整條移到B=5的數據位置上,語句如下:
update [表名] set A='a' where B=5
如果只是單純的要把B=1的B值換為5,語句如下:
update [表名] set B=5 where B=1
小於等於5的都自減1.語句如下:
update [表名] set B=B-1 where B<5 or B=5
㈥ sql 更新排序欄位
這個其實不用加order by的,因為原來的SQL語句只是位次的順序倒了,你把sql語句改成這樣就可以了
sSql = "update 成績表 set 位次=(select count(1) from 成績表 b where b.總分>=成績表.總分 and 班級='01'"
㈦ sql查詢,如果有更新時間則按更新時間倒序,沒
按修改的時間倒序排列語句為:
select * from MyTable Order By ModifyTime Desc
如果只想顯示最新一條,語句為:
select top 1 * from MyTable Order By ModifyTime Desc
示例:
表查詢結果為:
按時間排序後為:
只顯示最新一條結果為:
擴展:
ORDER BY 語句
ORDER BY 語句用於根據指定的列對結果集進行排序。
ORDER BY 語句默認按照升序對記錄進行排序。
如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。
㈧ sql 批量更新某一排序型欄位,數值遞加
一點想法:
1、寫個function,返回排序,這個函數把id作為參數。
2、1~n可以是不連續的。
㈨ SQL 怎麼用查詢結果更新列
t表 有沒有 與 published_date 相關聯的欄位?
如果有的話。
UPDATE t
SET
t.AV_L = tmp.AV__L
FROM
t JOIN
(SELECT
published_date,
sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date) AS tmp
ON (t.日期欄位 = tmp.published_date);
㈩ 如何修改SQL資料庫默認排序
在網上查了一些關於更改SQL SERVER2012資料庫安裝後的默認排序規則(Server Collation)的方法。經過實踐測試,把成功的方法記錄於此,方便大家查閱。具體的操作還是比較簡單的:1.首先打開命令提示符,即win+r,在彈出的窗口中輸入cmd即可進入命令提示符窗口;2.在命令提示符窗口中定位在你的SQL SERVER 2012安裝包的根目錄(注意:是SQL SERVER 2012的安裝包喲)如我的安裝在D盤的Download文件夾下的SQLSERVER2012SP1文件夾下,那麼就進行到SQLSERVER2012SP1這個目錄下3.最後運行如下命令:D:DownloadSQLServer2012SP1>Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=account /SAPWD=xxxxxxxx /SQLCOLLATION=Chinese_PRC_CI_AS
即可更改SQL SERVER 2012的默認排序規則(Server Collation)。第三步中的參數說明:INSTANCENAME:資料庫的實例名,默認的就是:你的資料庫管理賬號SAPWD:sa賬戶的密碼,可選SQLCOLLATION:需要修改成的排序規則