如果數(shù)字都是小于10的,可以直接order by,按照字符規(guī)則排序就是你想要的這個。
為運城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及運城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、成都做網(wǎng)站、運城網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
如果數(shù)字有兩位以上的,這時候11會排在2的前面,如果想數(shù)字按照數(shù)字的規(guī)則排序,字母按照字母的規(guī)則排序,需要根據(jù)條件將數(shù)字和字母分別查詢出來進(jìn)行排序,然后使用union all聯(lián)接出結(jié)果。
請問怎么更改排序規(guī)則呢
1.sp_helpsort
SELECT SERVERPROPERTY ('Collation')
查看你的排序規(guī)則.
不過你的這個應(yīng)該和字符集有關(guān).
2.更改服務(wù)器排序規(guī)則
更改 SQL Server 2005 實例的默認(rèn)排序規(guī)則的操作可能會比較復(fù)雜,包括以下步驟:
確保具有重新創(chuàng)建用戶數(shù)據(jù)庫及這些數(shù)據(jù)庫中的所有對象所需的全部信息或腳本。
使用工具(例如大容量復(fù)制)導(dǎo)出所有數(shù)據(jù)。
刪除所有用戶數(shù)據(jù)庫。
重新生成在 setup 命令的 SQLCOLLATION 屬性中指定新的排序規(guī)則的 master 數(shù)據(jù)庫。例如:
復(fù)制代碼
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
有關(guān)重新生成 master 數(shù)據(jù)庫的詳細(xì)信息,請參閱如何重新生成 SQL Server 2005 的 Master 數(shù)據(jù)庫。
創(chuàng)建所有數(shù)據(jù)庫及這些數(shù)據(jù)庫中的所有對象。
導(dǎo)入所有數(shù)據(jù)。
注意:
可以為創(chuàng)建的每個新數(shù)據(jù)庫指定默認(rèn)排序規(guī)則,而不更改 SQL Server 2005 實例的默認(rèn)排序規(guī)則。
可以,但是不可以為數(shù)字,或者數(shù)字開頭,當(dāng)使用where類似數(shù)據(jù)庫
保留字
的時候,需要使用[where]來使用。
--/*
--unicode編碼范圍:
--漢字:[0x4e00,0x9fa5](或十進(jìn)制[19968,40869])
--數(shù)字:[0x30,0x39](或十進(jìn)制[48,?57])
--小寫字母:[0x61,0x7a](或十進(jìn)制[97,?122])
--大寫字母:[0x41,0x5a](或十進(jìn)制[65,?90])
--根據(jù)編碼范圍來判斷
--*/
--創(chuàng)建
create?proc?p_A_VIC
as
declare?@count?int
declare?@i?int
declare?@text?nvarchar(50)
set?@i?=?0
set?@count?=?(select?COUNT?(*)?from?table??)
while(@i??@count?)
begin
set?@i?+=1
--sid代表有一定循環(huán)規(guī)律的,若是無序的可以添加一個序列(Row_Number()?OVER?---)。
--select?*?from?(SELECT?*,?Row_Number()?OVER?(?ORDER?BY?[sid]?)?num?FROM?s--table?)?as?s?where?num?=?3
set?@text?=?(select??a?from?table??where?[sid]?=?@i)
if?unicode(@text)?between?19968?And?40869?or?unicode(@text)?between?97?And?122?or?unicode('a')?between?65?And?90
begin
print?0
end
else
print?@text
end
--執(zhí)行
exec??p_A_VIC
sqlserver數(shù)據(jù)庫varchar(40)能存放20個漢字。
sqlserver數(shù)據(jù)庫中,英文字符需占用一個字節(jié)存儲,漢字和其他非英文字符,需占用兩個字節(jié)存儲。向一個長度為40個字符的varchar型字段中輸入漢字,最多可輸入20個漢字。當(dāng)從這個字段中取出數(shù)據(jù)時,數(shù)據(jù)其長度為20個漢字,40個字符。
擴(kuò)展資料:
VARCHAR(M)比CHAR更加的靈活,同樣用于表示字符數(shù)據(jù),但是VARCHAR可以保存可變長度的字符串。其中M代表該數(shù)據(jù)類型所允許保存的字符串的最大長度,只要長度小于該最大值的字符串都可以被保存在該數(shù)據(jù)類型中。
使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段時,不需要為剪掉數(shù)據(jù)中多余的空格而操心。它可以比CHAR型字段占用更少的內(nèi)存和硬盤空間。當(dāng)數(shù)據(jù)庫很大時,這種內(nèi)存和磁盤空間的節(jié)省會變得非常重要。
參考資料來源:
百度百科——varchar
百度百科——字長