我有一个实例,有时我们不确定按名称文本或名称 ID 进行过滤。我已经用 case 语句解决了这个问题,并且isnumeric
. 例如,我们同时拥有 id 和 name 值,但我们不确定要求过滤哪一列。rtresource.id
是数字,在这种情况下,我们有可以使用的值'183'
。如果rtresource.rname (varchar)
正在尝试过滤,那么我们有那个 id 'Jane Thompson' 的 rname。
所以过滤器是
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')
。如何用案例陈述解决这个问题?
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)
这也不起作用。想法?感谢您提前提供任何帮助。