iT邦幫忙

0

請問MSSQL SQL定序排序問題

  • 分享至 

  • xImage

我的DB的collate是Chinese_Taiwan_Stroke_CS_AS,我create了以下的table以及insert一些資料,最後做資料排序;跑出來的結果感覺像是沒在排序沒有規則.

這樣正常嗎?

create table testab (xx char(10))

insert into testab values('a')
insert into testab values('A')
insert into testab values('a0')
insert into testab values('b0')
insert into testab values('B')
insert into testab values('A')
insert into testab values('A0')
insert into testab values('b')
insert into testab values('B0')

select * from testab
order by xx asc;

預期結果的資料呈現順序
A
A
A0
B
B0
a
a0
b
b0

跑出來的資料呈現順序
a
A
A
a0
A0
b
B
b0
B0

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
BKY
iT邦好手 1 級 ‧ 2023-08-10 08:31:06

order by asc
不是從小到大排序嗎?

2
alien663
iT邦研究生 3 級 ‧ 2023-08-10 08:37:14

Chinese_Taiwan_Stroke_CS_AS的定序不是你想像的那樣子,詳細的解釋你要再看看文件為甚麼,至於你要的結果,可以這樣達到。

select *
from (
	values
		('a'), ('A'), ('a0'), ('b0'), ('B'), ('A'), ('A0'), ('b'), ('B0')
) T(A)
order by A collate Chinese_Taiwan_Stroke_BIN2 asc

我要發表回答

立即登入回答