SQL WHERE フィルターのユーザー入力を作成する方法は?そのため、ODBC を使用して SNOWFLAKE に接続し、いくつかのスクリプトを実行しています。 WHERE フィルターのリストを使用して UI ウィンドウをセットアップして、ppl が使いやすくする方法を考えています。
SQL スクリプトに入力する変数にマップするポップアップ付きのリストを想定しています。可能?

//**SNOWFLAKE QUERY****************************************************************************************************
uid = Get Environment Variable( "USERNAME" );
sql_state="
/********************************/
SELECT distinct
column1
,column2
,etc
from Database
WHERE 1=1
and filter1 like '%qwerty%'
and filter2 in ('a', 'b', 'c')
--and filter3 = '54168'
--and filter4 <> 'that_thing'
--and filter5 not in ('group1','group2')
and Date >= CURRENT_DATE - 30 /*go back 30 days*/
";
snowflake_spc = Open Database( "DSN=SNOWFLAKE1;UID=account;PWD=password;", sql_state );
/****************************************************************************************************/
その他スクリプティングRe: フィルターで SQL のユーザー入力を作成する方法は?これは間違いなく可能です。 jsl のコーディング スキルとシステムの複雑さに大きく依存します (単純な where 句を使用した where フィルタリングだけであれば、非常に簡単に実行できます)。
考慮すべきいくつかのこと:
- テンプレート文字列を使用してから、Eval Insert を使用して、そこに値を追加します (または単に文字列を連結します)。
- like/= をどのように処理しますか? 表示ボックス (ラジオ ボックス、チェック ボックス、コンボ ボックス) またはテキストの解析方法を示すテキスト編集ボックスの特定の文字?
- 複数の類似条件 (filter1 like something または filter2 like something) を処理する方法は?
- どう扱えばよいのでしょうか?
- モーダル ウィンドウにより、スクリプトの流れを簡単に処理できます。
- 後でシステムを拡張する方法を考える
- Scripting Guide と Scripting Index は非常に役立ちます。 また、JMP ヘルプはさまざまなディスプレイ ボックスに役立ちます。
以下は、テンプレート文字列を使用し、eval 挿入を使用して最終的な SQL を構築する非常に簡単な例です。
Names Default To Here(1);
sqlTemplate = "\[
select *
from *
where 1=1
^filter1Str^
^filter2Str^
]\";
filter1Str = "";
filter2Str = "";
rbSel = {"like", "in", "=", "not in", "not like"};
ex = New Window("Dialog() example",
<<MODAL></MODAL>
ユーザー インターフェイスでのユーザー入力と選択に応じて完全な SQL クエリを構築する、非常によく似たシステムを 1 つ構築しました (拡張が難しすぎるため、現在、時間があるときに完全に書き直しています)。
Re: フィルターで SQL のユーザー入力を作成する方法は?これは、 SQL クエリ ビルダー.
フィルターには、実行時にプロンプトを表示するオプションがフィルターにあり、JMP がプロンプトを表示します。 独自のダイアログを構築する必要はありません。

続きを読んで例を見てみましょうSQL クエリを作成する.