where句を使用しながら全レコードを SELECT or 特定レコードのみ SELECT を実現する方法
概要
Redash 等のセレクトボックスで ID1 を選択したらそのIDのレコードを、ALL を選択したらフィルタリングせずに全レコードを取得したいときがあります。
そこで SQL で WHERE id =
に 1 を記載したら id 1 のレコードを取得、ALL のようなものを記載したら全レコードを取得をする方法を考えてみました。
やり方
※ 対象テーブルが文字列のユニーク識別子を持っていることが前提条件となります。
=> CAST 関数を使って STRING に変換すれば id カラムでもできますね
LIKE
を使用して個別取得したいときは該当レコードのユニークIDを指定、全取得したいときはすべての文字列にマッチするようにワイルドカードを指定することで実現できます。
個別選択:
WHERE unique_code_column LIKE "code1234"
全選択:
WHERE unique_code_column LIKE "%_%"
下記は Big Query × Redash の例です
WITH users AS(
SELECT '田中' as name, 's9nicadgu3' as uid
UNION ALL
SELECT '佐々木' as name, 'p9f2igt4k5' as uid
UNION ALL
SELECT '佐藤' as name, 'tztrg8ibra' as uid
)
SELECT
*
FROM
users
WHERE uid LIKE {{ uid }}
## Dropdown List uid
"%_%"
"s9nicadgu3"
"p9f2igt4k5"
"tztrg8ibra"
Query Based Dropdown List を使用し、 uid を名前付きでよりわかりやすくすることもできます。
Author And Source
この問題について(where句を使用しながら全レコードを SELECT or 特定レコードのみ SELECT を実現する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/ikamirin/items/966f4764d802f9ed0842著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .