Ⅰ sqlserver中有沒有辦法對漢字的欄位排序
--漢字首字母查詢處理用戶定義函數
CREATE FUNCTION f_GetPY(@str nvarchar(4000))
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @py TABLE(
ch char(1),
hz1 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS,
hz2 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS)
INSERT @py SELECT 'A',N'吖',N'鏊'
UNION ALL SELECT 'B',N'八',N'簿'
UNION ALL SELECT 'C',N'嚓',N'錯'
UNION ALL SELECT 'D',N'噠',N'跺'
UNION ALL SELECT 'E',N'屙',N'貳'
UNION ALL SELECT 'F',N'發',N'馥'
UNION ALL SELECT 'G',N'旮',N'過'
UNION ALL SELECT 'H',N'鉿',N'蠖'
UNION ALL SELECT 'J',N'丌',N'竣'
UNION ALL SELECT 'K',N'咔',N'廓'
UNION ALL SELECT 'L',N'垃',N'雒'
UNION ALL SELECT 'M',N'媽',N'穆'
UNION ALL SELECT 'N',N'拿',N'糯'
UNION ALL SELECT 'O',N'噢',N'漚'
UNION ALL SELECT 'P',N'趴',N'曝'
UNION ALL SELECT 'Q',N'七',N'群'
UNION ALL SELECT 'R',N'蚺',N'箬'
UNION ALL SELECT 'S',N'仨',N'鎖'
UNION ALL SELECT 'T',N'他',N'籜'
UNION ALL SELECT 'W',N'哇',N'鋈'
UNION ALL SELECT 'X',N'夕',N'蕈'
UNION ALL SELECT 'Y',N'丫',N'蘊'
UNION ALL SELECT 'Z',N'匝',N'做'
DECLARE @i int
SET @i=PATINDEX('%[吖-做]%' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
WHILE @i>0
SELECT @str=REPLACE(@str,SUBSTRING(@str,@i,1),ch)
,@i=PATINDEX('%[吖-做]%' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
FROM @py
WHERE SUBSTRING(@str,@i,1) BETWEEN hz1 AND hz2
RETURN(@str)
END
GO
Ⅱ 怎樣用Order By這個SQL語句子句給中文排序
這個最簡單實用的方法用convert函數,像這樣就行select * from stu order by convert(sname USING gbk)
Ⅲ 關於SQL排序問題,帶中文和數字
select * from 表 order by cast(left(right(wg38,len(wg38)-8),len(right(wg38,len(wg38)-8))-1)as int) desc
Ⅳ 關於SQL語句的一個排序問題(中文和數字排序)
你得分三個欄位 來分物亮辯別儲蓄市區名、字母、數字鍵猛然後罩缺語句用多欄位的排序select projectno from al order by 市區名、字母、數字 asc
Ⅳ SQL排序按 名稱排序字母漢字混排
--首先准備一個拼音表
CREATE TABLE AWord(
PY varchar(10),
ZW nvarchar(10)
) ON [PRIMARY]
GO
--插入數據
insert into aword
select 'A',N'驁'
union all select 'B',N'簿'
union all select 'C',N'錯'
union all select 'D',N'鵽'
union all select 'E',N'樲'
union all select 'F',N'鰒'
union all select 'G',N'腂'
union all select 'H',N'夻'
union all select 'J',N'攈'
union all select 'K',N'穒'
union all select 'L',N'鱳'
union all select 'M',N'旀'
union all select 'N',N'桛'
union all select 'O',N'漚'
union all select 'P',N'曝'
union all select 'Q',N'囕'
union all select 'R',N'鶸'
union all select 'S',N'蜶'
union all select 'T',N'籜'
union all select 'W',N'鶩'
union all select 'X',N'鑂'
union all select 'Y',N'韻'
union all select 'Z',N'咗'
GO
--建立一個獲取拼音首字母的函數
create function f_GetPY
(
@str nvarchar(2)
)
returns nvarchar(2)
as
begin
set @str = left(@str, 1)
return (
case when unicode(@str) between 19968 and 19968+20901 then(
select top 1 PY+'.' from aword where zw>=@str
collate Chinese_PRC_CS_AS_KS_WS order by PY ASC
) else @str end
)
end
GO
--然後查詢排序
select * from 表 order by dbo.f_GetPY(欄位)
Ⅵ sql 中文數字混合排序問題
with ct as
(
select '第1號' as cj UNION ALL
select '第10號' as cj UNION ALL
select '第11號' as cj UNION ALL
select '第2號' as cj UNION ALL
select '第5號' as cj UNION ALL
select '第4號'胡枯兄 as cj UNION ALL
select '第6號'褲襲 as cj UNION ALL
select '第8號敗胡' as cj
)
SELECT SUBSTRING(cj,2,LEN(cj)-2),* from ct
ORDER BY convert(int,SUBSTRING(cj,2,LEN(cj)-2))
測試是ok的 但是像這種排序在數據量大的話 效率不高
Ⅶ sql怎麼order by 漢字,比如名字從z-a這么排
SQL的Order By子句是按漢子拼音順序+漢子的四聲調排序的。例如:
「達」、「大」、「帶」是由小到大的的順序。
Ⅷ 請教!請問在SQL中 漢字字元是如何排序的
對於 SQL Server
-- 按照拼音來排序
1> SELECT
2> *
3> FROM
4> Tab
5> ORDER BY
6> val COLLATE Chinese_PRC_CS_AS_KS_WS
7> go
id val
----------- ----------
2 二
3 三
4 四
5 五
1 一
(5 行受影響)
-- 按照筆畫數的多少來排序
1> SELECT
2> *
3> FROM
4> Tab
5> ORDER BY
6> val COLLATE Chinese_PRC_Stroke_CS_AS_KS_WS
7> go
id val
----------- ----------
1 一
2 二
3 三
5 五
4 四
(5 行受影響)
Ⅸ sql語句問題:像這樣的字元串欄位里含有數字還有漢字的如何使他們按照數字順序排列
把數據做一次清理。
提取數據里你需要輪攜閉進行排序的臘裂數據放在一個新欄位里
查詢時按提取的欄位進行排序即隱兆可。
注意數據類型哈
祝好運,望採納。
Ⅹ 怎麼用sql對搜索結果排序並添加序號
1、首先建一張測試表coal_blead,裡面有多個欄位。