Excelで郵便番号へハイフンを挿入するにはREPLACE関数を使用することで可能です。REPLACE関数は本来置換用の関数ですが第3引数へ0を指定することで文字列の追加も可能となります。
年別アーカイブ: 2022年
SQL:UPDATE と JOIN を使用してレコードを更新する方法
UPDATEで他のテーブルと結合(JOIN)した結果に対してのみ更新を実施したい場合、SQL ServerやMySQL、PostgreSQLではUPDATE文内に直接JOIN句を記載可能ですが、Oracleでは副問合せで結合することでJOINした結果に対して更新することが可能となります。
サンプルテーブル
「GOODS」テーブル
「GOODS_TYPE」テーブル
【Oracle】UPDATE文でJOINを使用して更新する例
クエリー(SQL)例
- 以下の例ではGOODS_TYPEテーブルに存在するGOODS_CODEと一致するレコードのみGOODSテーブルのPRICE項目を更新しています。
1234UPDATE GOODSSET PRICE = 5000WHERE GOODS_CODE = ANY(SELECT g.GOODS_CODE FROM GOODS g INNER JOIN GOODS_TYPE gt ON gt.GOODS_CODE = g.GOODS_CODE)
実行結果
- 以下の様にGOODS_CODEが一致しているレコードのみ更新されていることが確認できます。
【SQL Server、MySQL、PostgreSQL】UPDATE文でJOINを使用して更新する例
クエリー(SQL)例
- SQL Serverなどでは直接UPDATE文内にJOINを指定可能なので以下のような記載でもエラーにはならず更新されます。
1234UPDATE gSET r.PRICE = 5000;FROM GOODS gINNER JOIN GOODS_TYPE gt ON gt.GOODS_CODE = g.GOODS_CODE
SQL:合計や平均を算出する方法
SQLで合計を求めるにはSUM関数、平均を求めるにはAVG関数を使用します。
DBMS毎の使用可否
関数\DBMS MySQL PostgreSQL SQL Server Oracle
SUM ○ ○ ○ ○
AVG ○ ○ ○ ○
サンプルテーブル
「GOODS」テーブル
合計を求める実行例
SUM関数を使用したクエリー(SQL)例
- 以下の例ではGOODSテーブルのPRICE項目の合計値を求めています。
12SELECT SUM(PRICE)FROM GOODS;
実行結果
平均を求める例
AVG関数を使用したクエリー(SQL)例
-
以下の例ではGOODSテーブルのPRICE項目の平均値を求めています。
12SELECT AVG(PRICE)FROM GOODS;
実行結果
SQL:副問合せの結果をALL句で比較して取得する方法
ALL句を使用することでWHERE句内に指定した副問合せの結果を比較してデータを抽出する事が可能となります。
サンプルテーブル
ALL句を利用したクエリー(SQL)例
- 以下の例ではまず副問合せでGOODS_CODEテーブルからGOODS_CODEが101と301のデータを取得し、ALL句でGOODSテーブルのGOODS_CODEが101と301以外のデータを取得しています。
1234567SELECT *FROM GOODSWHERE GOODS_CODE <> ALL (SELECT GOODS_CODEFROM GOODS_TYPEWHERE GOODS_CODE in('101','301'));
実行結果
ワイヤレス トラックボールマウスが快適すぎた件
以前まではマウスにはそこまでこだわりがない方だったので光学式の安物を使用してましたが、リモートワークなどでPC操作時間が増えてくるとマウス操作で地味に手首に負担がくるのが気になってきたので意を決してトラックボールマウスを購入してみることにしました。
そこで半年位前に購入してみたのが
ロジクールの「トラックボールマウス ワイヤレス マウス windows mac iPad M575」です。
「トラックボールマウス ワイヤレス マウス windows mac iPad M575」の特徴
- 発売日:2020/11/26
- 参考希望小売価格:6,050円
- 接続方式:無線アドバンス2.4GHz Unifying-USB、Bluetooth
- メーカー:Logicool(ロジクール)
- 対応機種:IPad, Windows, Mac
- モデル番号:M575GR ※最新モデル(2021年12月購入時点)
- 製品サイズ:10 x 13.4 x 4.8 cm
- 重量:145 g
- 「傾斜角度が付いたスクロールホイールで指をより自然で快適な位置にホールド/幅広い手の大きさにフィット」
トラックボールマウスの使用感
- 購入後1ヶ月位は正直トラックボールでのマウスポインタ操作にかなり違和感がありました。
- 購入後2,3ヶ月でだいぶ違和感がとれてきて、半年経った今では全く違和感なくなり以前のマウスは使う気がしなくなっちゃいましたw
- 付属で「電池寿命最大24ケ月 グラファイト 国内正規品」も付いてきており未だに電池切れは起こしてないので2年持つというのも誇大広告ではなさそうです。
- 1ヶ月位でトラックボールの滑りが悪くなってくるのでボールを外してほこりや垢を掃除すれば問題なく使えます。
- 掃除の際にトラックボールにクリポリメイト(光沢剤)などを吹きかける事でさらに滑りがよくなります。
結論
- 買って良かった!リモートワークがますます快適にw
- まだトラックボールマウスを使用したことがなく、マウス操作で腱鞘炎などで手首が疲れてる自覚がある方には購入して損はないです。
- 最初の違和感さえ克服すれば後は快適です♪
Excel:文字列から指定した数の文字列を取得する方法
Oracle:DESCRIBEコマンドでテーブル(表)構造を確認する方法
Oracle:接続時に「ORA-01109:データベースがオープンされていません。」エラーが出た場合の原因と対応方法
DBクライアントソフトなどでOracle DBへ接続時に「ORA-01109:データベースがオープンされていません。」が表示された場合の原因と対応方法についてメモしておきます。
「ORA-01109:データベースがオープンされていません。」の原因
- 文字通り接続しようとしているDBがオープンされていないのが原因となります。今回接続先を「ORCLPDB」に指定していましたがそこがオープンされていないようです。
- 念のためSQL Plusを起動して「show pdbs」コマンドでプラガブル・データベース(PDB)のオープン状態を確認するとやはりオープンされていませんでした。
「ORA-01109:データベースがオープンされていません。」の対処方法
- SQL Plusで「alter pluggable database ORCLPDB open;」コマンドを実行し、ORCLPDBをオープンします。
- 「show pdbs」コマンドでプラガブル・データベース(PDB)のオープン状態を確認します。
- これでORCLPDBのオープンだけなら完了していますが、このままPCを再起動するとまた再びクローズ状態に戻ってしまいます。ですので最後に現在オープンされている全てのPDBを自動起動(オープン)するように「alter pluggable database all save state;」コマンドで保存します。
SQL:文字列や数値項目へ埋め込み文字を挿入して桁数を揃える方法
SQLでゼロ埋めスペース埋めして桁数を揃えたい場合にはLPAD関数やRPAD関数を使用することで取得可能となります。DBMSによっては使用出来ないものもあります。
関数\DBMS MySQL PostgreSQL SQL Server Oracle
LPAD ○ ○ ✕ ○
RPAD ○ ○ ✕ ○
書式は「LPAD(列名,バイト数,’埋め込み文字’)」、「RPAD(列名,バイト数,’埋め込み文字’)」で指定します。第三引数の埋め込み文字を省略すると半角スペースが埋め込まれます。
サンプルではOracleでの使用例となります。
サンプルテーブル
LPAD関数の使用例1
LPAD関数の使用例2
- 項目「GOODS_CODE」を10桁で全角「*」埋めするSQL(クエリー)
1SELECT LPAD(g.NAME , 10, '*') FROM USER1.GOODS g;
- 実行結果
以下のように埋め込み文字へ全角文字を指定すると1文字=2バイト扱いで埋め込まれます。