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

SQL文のwhere区で(-1)を使用したいのですがどなたかアドバイスお願いします。

SQLをプロシージャにして検索条件を引数で渡そうと考えています。
検索したくない引数には(-1)を入れて渡したいです。

select * from X where
X.1 = 'QQQ' and
(引数 = -1 or X.2 = 引数)

といった感じで、引数で(-1)を渡した場合
(-1 = -1 or X.2 = -1)
となりwhere区で使用しない様作成したいと思っています。

この方法ではDATETIME型に対してはエラーとなるため出来ません。
良い方法は無いでしょうか。

よろしくお願いします。

A 回答 (2件)

>sybaseでは出来ないようです。

エラーメッセージが出ます。
そうですか

そもそも
>検索したくない引数には(-1)を入れて渡したいです。
この考え方が一般的じゃないですもんね

普通は検索したくないときには何もいれず

select * from X where
X.1 = 'QQQ' and
( X.2 = 引数 or 引数 is null)

とします
これだとデータ型は関係なくなります
    • good
    • 0

>この方法ではDATETIME型に対してはエラーとなるため出来ません。


出来なかったですか?
Accessの日付時刻型ではマイナスもOKですよ

select * from X where
X.1 = 'QQQ' and
(引数 <> -1 and X.2 = 引数)

この回答への補足

回答ありがとうございます。sybaseでは出来ないようです。エラーメッセージが出ます。

補足日時:2007/07/03 08:56
    • good
    • 0

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