0

結果を取得するために渡されたパラメータを使用してSQLをフォーマットする方法があるかどうかを知りたいです。

dim fName as string = Tom

exec SP_GetPersonInfo + fName 

@FName VarChar(255)

SELECT Gender, Height, Weight, Age
FROM Person
WHERE FirstName LIKE ('fName %') <-- how would I format this? 
4

2 に答える 2

0

LIKE 演算子で使用できるワイルドカード文字は、ステートメントのコンパイル時に静的に評価されるのではなく、実行時に動的に評価されます。これが意味することは、「%」はステートメント自体の一部ではなく、演算子に与えるリテラルまたは文字列の一部である必要があるということです。

たとえば、次の Java ステートメントは文字列を ArrayList に入力します。ArrayList には、JDBC PreparedStatement のパラメータである文字列が含まれています。パラメータの形式は次のとおりです。

  • 「名前」+「%」

名前の最初の数文字を指定してクライアントを検索できるようにします。注: この形式では、多くのクエリ オプティマイザが引き続きインデックスを使用できます。

m_qlist.add(s[i] + "%");
于 2013-08-09T02:15:00.077 に答える
0

上記に基づいて、パラメーターを操作するクエリを次のように記述します@FName

SELECT Gender, Height, Weight, Age
FROM Person
WHERE FirstName LIKE @FName + '%';

結果を太字にすることは、まったく別の問題です。そして、Tim が言ったように、これはユーザー インターフェイスで処理する必要があります。書式設定コードを SQL ステートメントにハッキングしようとしてはいけません。

編集:あなたの明確化の後、上記のステートメントはあなたのステートメントと同等のパラメーター化されたものであると思います:

FirstName LIKE ('" + fname + " %') "
于 2013-08-09T01:55:12.317 に答える