名前のテキストまたは名前の ID でフィルター処理することが確実でない場合があります。これを case 文と で解決しましたisnumeric
。たとえば、id と name の両方の値がありますが、どの列をフィルター処理する必要があるかわかりません。rtresource.id
数値であり、この場合、処理する値があります'183'
。がフィルタリングしようとしている場合rtresource.rname (varchar)
、その ID の rname は「Jane Thompson」です。
したがって、フィルターは次のいずれかです
rtresource.id=183
または
rtresource.rname='Jane Thompson'
代わりに
rtresource.rname in (CASE IsNumeric(rtresource.rname) WHEN 1 then '183' else 'Jane Thompson' End)
これは素晴らしい作品です。問題は、id/rname の複数のセットが渡されることです。通常、どちらかを尋ねますrtresource.id in (183, 23) or rtresource.rname in ('Jane Thompson','John Doe')
。これを case ステートメントで解決するにはどうすればよいですか?
rtresource.rname in (CASE IsNumeric(rtresource.rname) WHEN 1 then ('183','23') else ('Jane Thompson','John Doe') End)
上記は、値間のコンマについて不平を言っています。私も試しました:
rtresource.rname in (CASE IsNumeric(rtresource.rname) WHEN 1 then ('183'+','+'23') else ('Jane Thompson'+','+'John Doe') End)
どちらも機能しません。アイデア?事前に助けてくれてありがとう。