呵呵,老衲说得这么客气:)
问题一:怎么知道中文字符的UNICODE编码是从19968到40870的select code=identity(int,1,1) into #t from
(select top 100 a=1 from syscolumns) as a,
(select top 100 a=1 from syscolumns) as b,
(select top 10 a=1 from syscolumns) as c--得到1-100000的连续自然数select nchar(code),code from #t order by code
--可以发现,中文字符就是UNICODE编码从19968到40870
知道了以后,就可以直接这么写了,得到所有汉字及对应unicode码
select top 20902 code=identity(int,19968,1) into #t from
(select top 165 a=1 from syscolumns) as a,
(select top 165 a=1 from syscolumns) as b
--得到所有汉字select nchar(code),code
from #t

解决方案 »

  1.   

    问题二:
    怎么知道按照笔划排序中文是
    ‘一’,‘丁’,‘万’等是一笔,两笔,三笔的第一个的select nchar(code),code
    from #t 
    order by nchar(code)  COLLATE Chinese_PRC_Stroke_ci_as
    就可以看出来,同笔划的汉字,是按unicode码排列的。
    如是:declare @s nvarchar(100)
    declare @n intset @s = ''
    set @n = 9999999select @s = case when @n > code then @s+chn else @s end,
           @n  = code from (
                         select top 21000 chn=nchar(code),code
                         from #t 
                         order by nchar(code) COLLATE Chinese_PRC_Stroke_ci_as) as a
    select @s
    --一丁万不且丞丣並临丵乾亁亂僊僵亸償儭儳儶儷亹儽儾
    --囔圞灥囖爨厵灩灪爩齾齉靐--当然,最后面几个会不对。不过没关系,我还没见过谁用过这些汉字。所以,我把最后几个去掉了
      

  2.   

    问题三:
    怎么知道按照拼音排序中文是
    ‘吖’‘八’‘嚓’等是A,B,C发音的第一个的我是一个个找的:
    select chn=nchar(code),code from #t
    order by nchar(code) COLLATE Chinese_PRC_CI_AS从原理来讲,可以根据j9988老总已有的求首拼码的函数得出来:
    http://expert.csdn.net/Expert/topic/1266/1266960.xml?temp=.2896234
    select chn=min(nchar(code)),singlepy=dbo.getfirstpy(nchar(code))  
    from #t 
    where dbo.getfirstpy(nchar(code)) <> ''
    group by dbo.getfirstpy(nchar(code))
    order by dbo.getfirstpy(nchar(code))但是,因j9988的函数并未包括不常用字,所以会有少许误差。但根据这个结果集去找已经很简便了。
      

  3.   

    另外你获得自然数的方法比原来那种用union相乘的方法还妙,佩服佩服
      

  4.   

    Chiff(~o~) :建议你还是用一丁万不且丞丣並临丵乾亁亂僊僵亸償儭儳儶儷亹儽儾这些字刚才我查“称”好像笔划不太对。
      

  5.   

    再补充,第一个问题可以通过查unicode字符映射表得到。:)
      

  6.   

    谢谢老衲!我已发布了新版本:
    http://expert.csdn.net/Expert/topic/1295/1295209.xml?新版本应该没问题。我用"称"试过了。“乾亁”,我也弄了很久,看不出来,又放到excel中放大看,还是看不出。祖国的汉字,真是博大精神。
      

  7.   

    Chiff(~o~) 果然很高,这两个帖子应该放到精华区。