当前位置:首页 » 编程语言 » sql排序汉字

sql排序汉字

发布时间: 2022-05-20 21:59:24

Ⅰ 也是sql汉字排序的问题

按日期排:
select * from table_name order by 日期

按等级排:
select * from table_name order by 等级

按地区排:
select * from table_name order by
case when 地区='长春' then 0
when 地区='长春' then 1
when 地区='吉林' then 2
when 地区='四平' then 3
when 地区='辽源' then 4
when 地区='通话' then 5
when 地区='白山' then 6
when 地区='松原' then 7
when 地区='白城' then 8
when 地区='延边' then 9 end

按照你给的顺序综合排:
select * from table_name order by 日期,case when 地区='长春' then 0
when 地区='长春' then 1
when 地区='吉林' then 2
when 地区='四平' then 3
when 地区='辽源' then 4
when 地区='通话' then 5
when 地区='白山' then 6
when 地区='松原' then 7
when 地区='白城' then 8
when 地区='延边' then 9 end,等级

----补充----
反了的话你就加个desc就行了

select * from table_name order by 日期 desc

select * from table_name order by 日期 desc,case when 地区='长春' then 0
when 地区='长春' then 1
when 地区='吉林' then 2
when 地区='四平' then 3
when 地区='辽源' then 4
when 地区='通话' then 5
when 地区='白山' then 6
when 地区='松原' then 7
when 地区='白城' then 8
when 地区='延边' then 9 end,等级

Ⅱ 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语句问题:像这样的字符串字段里含有数字还有汉字的如何使他们按照数字顺序排列

把数据做一次清理。
提取数据里你需要进行排序的数据放在一个新字段里
查询时按提取的字段进行排序即可。
注意数据类型哈
祝好运,望采纳。

Ⅳ sql怎么order by 汉字,比如名字从z-a这么排

SQL的Order By子句是按汉子拼音顺序+汉子的四声调排序的。例如:
“达”、“大”、“带”是由小到大的的顺序。

Ⅳ sql中怎样按拼音排序

这个有点难,不过汉字编码本来就是部分的按拼音排序的,比如“啊”的内码比“这”小,所以你直接排序汉字,得到的结果也是大致按照拼音排序。

GB2312编码分两级汉字,一级汉字是常用字,内码比二级汉字小,但是在一级汉字内部,内码是按照拼音排序的,

Ⅵ 怎样用Order By这个SQL语句子句给中文排序

这个最简单实用的方法用convert函数,像这样就行select * from stu order by convert(sname USING gbk)

Ⅶ 很麻烦的SQL汉字时间排序,高手请进

select * from tablename order by dbo.ctimetomin(vtime)
=====>执行前要建立如下函数

create FUNCTION ctimetomin
(@timestr varchar(200))
RETURNS varchar(100)
AS
BEGIN
set @timestr=replace(@timestr,'天','*24*60+')
set @timestr=replace(@timestr,'小时','*60+')
set @timestr=replace(@timestr,'分钟','')
declare @m int,@sqlstr nvarchar(1000)
set @sqlstr=N'set @m='+@timestr
SP_EXECUTE @SQLSTR,@m
RETURN (@m)

END

GO

Ⅷ SQl 中的排序规则什么意思

什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server 中,
字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存
储和比较字符所使用的规则。"
在查询分析器内执行下面语句,可以得到SQLSERVER支持的所有排序规则。
select * from ::fn_helpcollations()
排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则,按拼音排序。
Chinese_PRC_Stroke 表示按汉字笔画排序;
排序规则的后半部份即后缀 含义:
_BIN 二进制排序
_CI(CS) 是否区分大小写,CI不区分,CS区分(case-insensitive/case-sensitive)
_AI(AS) 是否区分重音,AI不区分,AS区分(accent-insensitive/accent-sensitive)
_KI(KS) 是否区分假名类型,KI不区分,KS区分(kanatype-insensitive/kanatype-sensitive)
_WI(WS) 是否区分宽度 WI不区分,WS区分(width-insensitive/width-sensitive)
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,
比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项。

Ⅸ 请教!请问在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 行受影响)

Ⅹ 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

热点内容
pic编译软件 发布:2025-02-14 03:01:04 浏览:983
反编译在编译 发布:2025-02-14 02:55:36 浏览:417
python打印对象 发布:2025-02-14 02:51:20 浏览:572
QRM算法 发布:2025-02-14 02:45:19 浏览:265
c语言打印结构体 发布:2025-02-14 02:42:28 浏览:140
编译技术实验一 发布:2025-02-14 02:28:24 浏览:647
编程手机入门 发布:2025-02-14 02:27:40 浏览:733
局域网视频android 发布:2025-02-14 02:23:56 浏览:423
麒麟系统如何安装安卓程序 发布:2025-02-14 02:07:21 浏览:399
ipad访问电脑硬盘吗 发布:2025-02-14 02:02:53 浏览:901