
<環境>sqlserver
SQLでパラメータが空白であれば全件取得、パラメータに値が設定されている場合には
条件にHITするデータを抽出したいのですが、一本のクエリで抽出することができるのでしょうか?
空白時パラメータは以下のとおり入ってきます。
@no=""…完全一致
@name="%%"…部分一致
例)
SELECT *
FROM テーブル
WHERE
(NO = @no)
and ((@name IS NULL) OR (@name IS NOT NULL) AND (NAME LIKE @name))
NAMEは上記クエリにて取得できています。
NOのところはどのようにすればよいでしょうか?
No.3
- 回答日時:
Case文を使うととりあえず対応は可能かと…。
No=Case @no is null then No else @no end
この回答への補足
SELECT *
FROM テーブル
WHERE
([NO] = CASE @no IS NULL THEN [NO] ELSE @no END)
AND
((@name IS NULL) OR (@name IS NOT NULL) AND ([NAME] LIKE @name))
でエラーとなります。何度もすみませんが添削お願いします。
No.2
- 回答日時:
>完全一致は仕様のため変更できないのです
とありますが、たとえばNOが5ケタ固定長の場合
WHERE NO LIKE '12345%'
と
WHERE NO = '12345'
は変わらない結果が得られると思いますが。
>テーブルを作成
他には空白時とそうでない場合でsqlcommandを
PGで切り替えるとかでしょうか。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- 英語 この英語の問題が分かりません 3 2023/04/22 20:19
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「名前(first name) 1 2023/06/24 13:03
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
caseを使った条件分岐の加算が...
-
重複レコードのある項目を比較...
-
SQLの書き方を教えて!
-
sql文のwhere句について
-
検索対象のデータが「複数レコ...
-
Oracleのエラースタックトレー...
-
誰か教えてください
-
PL/SQLのエラー処理について
-
ACCESSでテキストデータ...
-
差し込み後、元データを変更し...
-
identity属性の列に自動採番(SQL)
-
エクセルに見えない文字(JISX0...
-
jQueryで、カラム幅を変更でき...
-
複数テーブルのGROUP BY の使い...
-
NO WAR NO ABE
-
EXCELでの数式入力方法
-
for whichの使い方
-
select文で int を yyyy-mm-dd...
-
フリーマーケット!
-
[WHS]定数宣言の際にリテラル文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ビュー情報(user_views)の参...
-
OR と IN の違い
-
sql文のwhere句について
-
最新から100行のSELECT文
-
階層問い合わせで重複レコード...
-
sqlのテーブル名省略について
-
Oracleのエラースタックトレー...
-
各グループの最終日より一週間...
-
MAX日付のSQLについて
-
表と表領域とデータファイルに...
-
フィールドをデフォルト0にする
-
大文字/小文字の区別しないで検...
-
検索対象のデータが「複数レコ...
-
複数パターンの集計結果を一度...
-
PL/SQL デバック方法:入力を受...
-
テストデータを作成したい
-
SQL 2000 にあった一覧のエクス...
-
SQLの書き方を教えて!
-
コンパイルエラーが出ます。助...
-
差し込み後、元データを変更し...
おすすめ情報