テーブルがあるとします。 このテーブルには、各学生コードの列(varchar)があります。 私が設定したフィルタに基づいて多くの学生を検索したい。SQLサーバーのwhere句の置換
たとえば、000012,000014,000058
のように、ユーザーが コードをコンマで区切って挿入する質問フィールド(varchar)があります。そう私は置き換える機能REPLACE(CHAR(39)+'000012,000014,000058'+CHAR(39),',',CHAR(39)+','+CHAR(39))
を使用して('000012','000014','000058')
:
質問欄が私を返すこと'000012,000014,000058'
のような値がSQLクエリは、質問欄に Select * from Students where code in ('000012,000014,000058')
その方法を実装して、私は、値を変更する必要がありますこれを試してください
Select *
from students
where code in (REPLACE(CHAR(39)+'000012,000014,000058'+CHAR(39),',',CHAR(39)+','+CHAR(39)))
まだ動作しません。
すべてのアイデア?
私が正しく理解していれば、唯一の問題は投稿データです。したがって、クエリとIF 'code'フィールドが数値の前に' ''を何も置き換えないと、あなたのクエリはうまくいく '(000012,000014,000058)のコードになります。これはもちろん、回避策です。 –
mayde私は明確ではなかった。私のdbは適切に設計されています。 各レコードのコード列には1つの値しかありません。 ユーザーは、フロントエンドの質問フィールドに、学生に関する情報を表示するために、カンマで区切られた学生のコードを0001200058と入力します。 私はSQLクエリを選択する必要があります*どこからコードが( '00012'、 '00058') – Dimitris
@JorgeCamposはい、コードが数字であればそれは良いです しかし、コード列はvarcharです – Dimitris