SQLサーバーのテーブルデータの拼音コードを自動的に生成します

SQLサーバーのテーブルデータから拼音コードを自動的に生成する実装手順を要約します。

1.メソッドを作成し、パラメーターを渡します。このパラメーターは、Pinyinコードを自動的に生成するデータの種類です。

次のコードは、エディターに直接コピーして実行できます。実行後、 fn_GetPy(str)メソッドを呼び出すことができます 

 CREATE  function  fn_GetPy(@str  nvarchar(4000))  
  returns  nvarchar(4000)  
  --WITH  ENCRYPTION  
  as  
  begin  
  declare  @intLen int  
  declare  @strRet nvarchar(4000)  
  declare  @temp  nvarchar(100)  
  set  @intLen  =  len(@str)  
  set  @strRet  =  ''  
  while  @intLen  >  0  
  begin  
  set  @temp  =  ''  
  select  @temp  =  case    
  when  substring(@str,@intLen,1)  >=  '帀'  then  'Z'  
  when  substring(@str,@intLen,1)  >=  '丫'  then  'Y'  
  when  substring(@str,@intLen,1)  >=  '夕'  then  'X'  
  when  substring(@str,@intLen,1)  >=  '屲'  then  'W'  
  when  substring(@str,@intLen,1)  >=  '他'  then  'T'  
  when  substring(@str,@intLen,1)  >=  '仨'  then  'S'  
  when  substring(@str,@intLen,1)  >=  '呥'  then  'R'  
  when  substring(@str,@intLen,1)  >=  '七'  then  'Q'  
  when  substring(@str,@intLen,1)  >=  '妑'  then  'P'  
  when  substring(@str,@intLen,1)  >=  '噢'  then  'O'  
  when  substring(@str,@intLen,1)  >=  '拏'  then  'N'  
  when  substring(@str,@intLen,1)  >=  '嘸'  then  'M'  
  when  substring(@str,@intLen,1)  >=  '垃'  then  'L'  
  when  substring(@str,@intLen,1)  >=  '咔'  then  'K'  
  when  substring(@str,@intLen,1)  >=  '丌'  then    'J'  
  when  substring(@str,@intLen,1)  >=  '铪'  then  'H'  
  when  substring(@str,@intLen,1)  >=  '旮'  then  'G'  
  when  substring(@str,@intLen,1)  >=  '发'  then  'F'  
  when  substring(@str,@intLen,1)  >=  '妸'  then  'E'  
  when  substring(@str,@intLen,1)  >=  '咑'  then  'D'  
  when  substring(@str,@intLen,1)  >=  '嚓'  then  'C'  
  when  substring(@str,@intLen,1)  >=  '八'  then  'B'  
  when  substring(@str,@intLen,1)  >=  '吖'  then  'A'  
  else  rtrim(ltrim(substring(@str,@intLen,1)))  
  end  
  --对于汉字特殊字符,不生成拼音码  
  if  (ascii(@temp)>127)  set  @temp  =  ''  
  --对于英文中小括号,不生成拼音码  
  if  @temp  =  '('  or  @temp  =  ')'  set  @temp  =  ''  
  select  @strRet  =  @temp  +  @strRet  
  set  @intLen  =  @intLen  -  1  
  end  
  return  lower(@strRet)  
  end 
  

2.ステップ1を実行した後、メソッドを直接置き換えることができます:fn_GetPy(str)、strは渡されるパラメーターです。

例:

テーブル部門テーブル(DicDept_KS)の名前フィールドからピンインコードを自動的に生成します。注:コード、名前、およびPYMは、すべてテーブルDicDept_KSのフィールドです。

-この部門テーブルで拼音コードが生成されているかどうかを照会し、拼音コードが生成されていることを確認してから変更します。

SELECT Code, name , dbo.fn_GetPy(name) AS PYM  FROM dbo.DicDept_KS

-部門テーブルのPYMフィールドを生成された拼音コードに変更します

update dbo.DicDept_KS set  PYM =dbo.fn_GetPy(name )

 最終結果は次のとおりです。

--UPPER(str)関数を使用して、生成された拼音コードを大文字に変換できます

SELECT  Code ,Name,UPPER(PYM) as PYM   FROM   DICDEPT_KS

おすすめ

転載: blog.csdn.net/h610443955/article/details/106854740