アプリ版:「スタンプのみでお礼する」機能のリリースについて

採番テーブルを作成しています。
テーブルが空の場合に、初期値に1を設定したいので、
以下の構文を作りましたが、どちらも値が入っていれば番号+1を返してくれますが、テーブルを空にした場合は引っかかりません。

・SELECT ISNULL( 最新番号+1, 1 ) FROM 採番テーブル

・SELECT CASE WHEN 最新番号 = '' THEN 1 ELSE 最新番号+1 END FROM 採番テーブル

テーブルが空のときは1を入れるのを一文でやるのは無理でしょうか?

A 回答 (3件)

SELECT ISNULL(MAX(最新番号 + 1), 1) FROM 採番テーブル



でいかがですか。
    • good
    • 0
この回答へのお礼

上記そのままで上手くいきました。
ありがとうございました。

お礼日時:2005/09/02 16:54

unionでやったらどうですか?


SELECT ISNULL( 最新番号+1, 1 ) FROM 採番テーブル
union
select 1 where not exists(select * from 採番テーブル)
    • good
    • 0
この回答へのお礼

こちらでも上手くいきました。
UNIONはあまり使ったことがないので、
これから勉強しようと思います。

お礼日時:2005/09/02 16:44

CASEの方でcount(最新番号)=0ってできませんでしたっけ?



nullやスペースかどうかはレコードがないと比較できませんよ。
    • good
    • 0
この回答へのお礼

残念ながら
「SELECT CASE WHEN count(最新番号) = 0 THEN 1 ELSE 最新番号+1 END FROM 採番テーブル」
で確認したところ、メッセージ 8118でエラーになってしまいました。
でも、確かにレコードがないのにNULLかどうかなんかチェックしてもしょうがないですよね・・・。
ありがとうございました。

お礼日時:2005/09/02 16:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す