Ⅰ 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,里面有多个字段。