1. ホーム
  2. sql

[解決済み] SQL Serverです。すべての大文字をプロパー大文字/タイトル大文字にする

2022-03-06 17:23:03

質問

すべて大文字でインポートされたテーブルがあるのですが、これを小文字に変えたいのです。どのようなスクリプトを使ってこれを完成させたことがありますか?

解決方法を教えてください。

これを実現するためのUDFを紹介します。

create function ProperCase(@Text as varchar(8000))
returns varchar(8000)
as
begin
  declare @Reset bit;
  declare @Ret varchar(8000);
  declare @i int;
  declare @c char(1);

  if @Text is null
    return null;

  select @Reset = 1, @i = 1, @Ret = '';

  while (@i <= len(@Text))
    select @c = substring(@Text, @i, 1),
      @Ret = @Ret + case when @Reset = 1 then UPPER(@c) else LOWER(@c) end,
      @Reset = case when @c like '[a-zA-Z]' then 0 else 1 end,
      @i = @i + 1
  return @Ret
end

それでもデータの更新には使う必要がありますが。