最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

おすすめ本

AccRanking

Ad

2019年10月 4日 (金)

【SQL-Server】WITH句を使った再帰処理で連番の生成

WITH句 の中で自分自身を読んでやれば再帰的に処理が行われる様です。 以下のSQLでは連番を生成する処理を再帰処理で行っています。

このSQLを実行すると以下の様になります。

With21


但し、このままでは100件までの再帰処理しかできない様で、「SEQNO < 102」と指定すると以下の様にエラーが発生します。
メッセージ 530、レベル 16、状態 1、行 1
ステートメントが終了しました。ステートメントの完了前に最大再帰数 100 に達しました。

With22

このエラーも OPTION (MAXRECURSION nnn) として指定し「nnn」に101以上を指定すればできることになります。
尚、 MAXRECURSION の範囲は「0」~「32767」で「0」指定は制限が無い様です。 制限無しでもあまりに大きい値は問題有りだとは思います。 楽天市場

【SQL-Server】WITH句を使って同一処理SQLを複数回利用する

SELECT文において副問合せを使うことはよくありますが、 全く同じ副問合せを何度も記述することはSQL的にも非効率です。
そこで WITH句 の登場なのですが、 この句を用いて何度も利用するSELECT文を宣言し、 それをその後に続くSQLの中の FROM句 の中で利用できます。
以下の様なテストテーブル「TEST1」があるとします。 このテーブルに対して WITH句 を使ってみます。

With10

TEST1のCODE2が「3」のデータを全て抽出するSELECTを WITH句 として宣言し、 さらにその WITH句 を2回使用するSQLが以下の様になります。

WITH句 では「CODE1」が「1」と「4」のデータを抽出します。 それ以降の SELECT文 では「CODE2」が「1」と「3」のものを UNION しています。 このSQLを実行すると以下の様になります。

With11

楽天市場

2019年9月25日 (水)

【SQL-Server】Oracleの「CREATE OR REPLACE TABLE」に変わる方法について

SQL-Server には Oracle の様に CREATE OR REPLACE TABLE がありません。
そこで以下の様に OBJECT_ID 関数でテーブルの存在確認をし、存在すればテーブルを削除(DROP TABLE)します。
その後で、テーブルの生成(CREATE TABLE)を行います。
このテーブルでは CODE1CODE2 を主キーとして設定する例を示しています。

楽天市場

2019年7月 8日 (月)

【PHP】「select」タグが入力不可でも値をPOSTするには「option」タグを「disabled」に設定する

PHP でシステムを組んでいると、データの中の区分値などを select タグを用いて入力します。 この区分値を入力不可にしようとして select タグの部分に disabled="disabled" とすることが多いです。

ただこの方法ですと、画面上は select ボックスは表示されるのですが POST 処理で値が渡ってきません。 以下のソースをブラウザで表示して OK を押下すると「select value = 」の所には何も表示されません。

select タグに disabled="disabled" とするのではなく option タグに選択されていないところを disabled="disabled" とし 選択されたいるところに selected="selected" とします。 上記のソースを以下の様に変更しました。


この様にするとドロップダウン表示をした時に selected="selected" とした option タグが通常の表示となり disabled="disabled" としたタグは選択できない灰色の表示になります。

楽天市場

2019年7月 6日 (土)

【PHP】「stdClass」は「foreach」での処理ができる

以前 stdClass について以下の記事を書きましたが、 このクラスですが、連想配列的に使えるので当然 foreach の処理が行えます。

【PHP】連想配列の様な「stdClass」の使い方について


これを動作させると以下の様な表示になります。

連想配列の様にキーとその値が取得できています。
stdClass 使いようによってはいろいろできそうに思います。

楽天市場