ENTEREAL

SQLのREPLACE関数

ここ十数年の間、DBを開発で多用していたが、いずれの機会もデータを記録や更新、削除するのがほとんどでした。

今回のプロジェクトでは、ユーザがGUIで簡単にデータにパッチ等を実施し、データメンテナンスを行う機能を作成するにあたり、たいした内容ではないのですが、「へー」と気づいた事を備忘的な意味合いで書いてみます。

SQLでデータを置換したいとき、REPLACE関数を使います。

使い方はPerlのREPLACE関数とまったく同じでREPLACE("被置換文字列", "置換文字列", "置換後文字列")と、非常に理解しやすいものです。

SELECT NAME AS "敬称有", REPLACE(NAME, "様", "") AS "敬称略" FROM SAMPLE_TABLE;

敬称有  敬称略
--------+----------
鈴木様  鈴木
田中様  田中
....

ここまでは、知っている方も多いでしょうし、ネットで調べてもすぐ情報を得られ、理解できます。

このREPLACE関数って、UPDATE文でも使えるって知ってました?

もしかしたら、こんなの当り前なのかもしれませんが。。。。

UPDATE SAMPLE_TABLE SET NAME = REPLACE(NAME, "様", "");

// sample_table(変更前)          // sample_table(変更後)
rowid   name              rowid   name    
--------+----------     →      --------+----------  
  1   鈴木様               1   鈴木    
  2   田中様               2   田中    

知らなかった今までは、サブクエリだのストアド、外部プログラムなどでグリグリ、ゴリゴリやってました。涙


Tags