sqlserver排序規則的問題

2022-03-20 23:40:28 字數 3789 閱讀 3192

1樓:匿名使用者

alter table [表名] alter column [列名] [型別] collate chinese_prc_ci_as

[型別] 最好選用 nvarchar,nchar儲存資料時如果出現亂碼,可能情況如下:

1.提交到資料庫的字元是亂碼

2. 資料庫排序規則不支援該字符集

3.資料庫表欄位的型別設計不合適,最好選用nvarchar,nchar

4.插入字串時強制儲存格式 insert into [表名] ([欄位1]) values(n'字串'),最好在字串前指定 n

2樓:

sql server儲存漢字是採用的ucs2編碼方案,官方對於需要用utf-8編碼顯示漢字的解決方法如下

在伺服器端,應使用 session.codepage 屬性或 @codepage 指令來指定客戶端的編碼方案。例如,codepage = 65001 指定了 utf-8 編碼方案

這是asp裡邊的解決方案,php不熟悉,估計也應該有類似設定吧?

sqlserver排序規則的問題

3樓:

如何區分大小寫、全形半形(sql2000測試通過):

/*用定義排序規則(chinese_prc_cs_as_ws、chinese_prc_bin)來區分,

介紹兩種排序規則:

第一個chinese_prc所屬區域(中文(香港特別行政區),中文(中華人民共和國),中文(新加坡))

cs(casesensitivity縮寫):cs 指定區分大小寫,ci 指定不區分大小寫。

as(accentsensitivity縮寫):as 指定區分重音,ai 指定不區分重音。

ws(widthsensitivity縮寫):ws 指定區分大小寫,omitted 指定不區分大小寫。(區分全形半形)

bin:指定使用二進位制排序次序。

kanatypesensitive:ks 指定區分假名型別,omitted 指定不區分大小寫。

_bin 二進位制排序

_ci_ai 不區分大小寫、不區分重音、不區分假名型別、不區分寬度

_ci_ai_ws 不區分大小寫、不區分重音、不區分假名型別、區分寬度

_ci_ai_ks 不區分大小寫、不區分重音、區分假名型別、不區分寬度

_ci_ai_ks_ws 不區分大小寫、不區分重音、區分假名型別、區分寬度

_ci_as 不區分大小寫、區分重音、不區分假名型別、不區分寬度

_ci_as_ws 不區分大小寫、區分重音、 不區分假名型別、區分寬度

_ci_as_ks 不區分大小寫、區分重音、區分假名型別、不區分寬度

_ci_as_ks_ws 不區分大小寫、區分重音、區分假名型別、區分寬度

_cs_ai 區分大小寫、不區分重音、 不區分假名型別、不區分寬度

_cs_ai_ws 區分大小寫、不區分重音、不區分假名型別、區分寬度

_cs_ai_ks 區分大小寫、不區分重音、區分假名型別、不區分寬度

_cs_ai_ks_ws 區分大小寫、不區分重音、區分假名型別、區分寬度

_cs_as 區分大小寫、區分重音、不區分假名型別、不區分寬度

_cs_as_ws 區分大小寫、區分重音、不區分假名型別、區分寬度

_cs_as_ks 區分大小寫、區分重音、區分假名型別、不區分寬度

_cs_as_ks_ws 區分大小寫、區分重音、區分假名型別、區分寬度

*/在我的blog裡有舉用法例子

4樓:匿名使用者

sql server裡應該沒有chinese_prc規則,還需要設定得更詳細些。否則就給預設值了。

select *

from ::fn_helpcollations()where name like 'chinese_prc%'

可以查出,有哪些規則

5樓:匿名使用者

那是因為你沒有選擇 二進位制,變成了大小寫不區分了。。

sqlserver 排序問題

6樓:

ssql = "select * from 成績表 order by 成績 desc"

直接改成:

ssql = "update 成績表 set 位次=(select count(1) from 成績表 b where b.成績《成績表.成績)+1"

就完成了您的所有任務!您一試便知有多爽

*************************=update 成績表 set 位次=(select count(1) from 成績表 b where b.成績《成績表.成績 and 班級='200901')+1 where 班級='200901'

這樣是隻對一個班單獨排序

怎樣知道sqlserver的排序規則 15

sqlserver排序問題

7樓:

用row_number()over(partition by t_number order by t_number desc)

sqlserver排序問題,求大蝦指教 5

8樓:

更新表2的order列

select no=identity(int,1,1) ,* into #temptalbe from order by id asc ;

update training set order =b.no from training as a , #temptalbe as b where a.badge = b.

badge ;

drop table #temptable;

更新後排名次就好辦了:

select a.order ,b.name from training as a,employee as b where a.badge *=b.badge ;

sqlserver的排序規則是不是編碼規則

9樓:媳右鴕痙

alter table [表名] alter column [列名] [型別] collate chinese_prc_ci_as

[型別] 最好選用 nvarchar,nchar儲存資料時如果出現亂碼,可能情況如下:

1.提交到資料庫的字元是亂碼

2. 資料庫排序規則不支援該字符集

3.資料庫表欄位的型別設計不合適,最好選用nvarchar,nchar

4.插入字串時強制儲存格式 insert into [表名] ([欄位1]) values(n'字串'),最好在字串前指定 n

sqlserver資料表排序問題

10樓:匿名使用者

不曉得你這個newid()方法是怎麼寫的,我自己也寫過一個類似的方法,思路是這樣的:

首先,獲取資料表的行數。

然後在newid()方法裡int id=行數+1,這樣就保證了插入的資料永遠排在最後一行。

11樓:匿名使用者

可以在id上建立一個聚集索引,使資料按照id的排序順序來儲存。

當然你也可以在查詢時使用order by 來指定查詢出來的資料的排列順序。

12樓:匿名使用者

試試把newid()改成newsequentialid()

SQL Server的排序規則在什麼時候能夠進行設定或修改

sql server的預設排序規則只能在安裝sql server的時候才能修改,如果只是修改一個庫,除了樓上給出的 修改外,還可以自己手動修改,右鍵單擊你需要修改的資料庫,選擇屬性,在彈出的對話方塊中選擇選項,選項對話方塊中有個排序規則的下拉框。一般都是選擇的chinese prc ci as sq...

sqlserver按照某個欄位的值排序,但是需要剔除裡面某些值怎麼寫

在order by之前寫,where aaa 2 不用謝我 我是雷鋒,這些都是最基礎的sql用法,你還需努力啊 判斷條件加上aaa不等於2就可以了。select from 表名 where aaa 2 order by aaa sql 按欄位指定值排序 這個需要在排序語句中使用條件判斷 例如 表 t...

資料庫預設的排序規則是怎樣的還有如果按照我想要的方式做排序要怎麼寫

你要求的排列沒有什麼規律呀。一般都是用 order by 欄位名 desc 倒敘排列或者order by 欄位名 asc 正序排列oracel的預設排序是 1 用了oracle的堆表 如果你建表時候沒有指定表型別,預設就是堆表 2 按照且僅按照一個有大量重複資料的欄位排序而且oracle11g已經取...