sql server 2008 - not - Usar el operador IN para filtrar los servicios de informes
sql contains (12)
¿Alguien puede aconsejar cuál debe ser la sintaxis al usar el operador IN dentro de un filtro de tabla? He intentado el siguiente, pero el snytax está mal:
Esto funcionó para mí en SSRS 2012.
"criterio uno", "criterio dos"
Esto realmente funciona:
=CStr("Value1,Value2,Value3,Value4,etc").Split(",")
Esto se prueba en SSRS 2012.
Ingrese esta consulta en la expresión:
=Join(Parameters!MultiValueParam.Value)
Mi problema finalmente se resolvió después de muchos intentos, solo usando este método.
Expresión:
= InStrRev ( cadena completa con delimitador , valor de búsqueda )
Tipo: Entero
Operador: <>
Valor: 0
Mis valores incluyen barras diagonales. La única forma en que podía obtener el operador In ▼ de SSRS para manejarlos correctamente era con la expresión =
CStr("google / cpc,bing / cpc").Split(",")
Para valores enteros, puede usar:
Teclee el texto
Operador: en
Valor: = Nuevo entero () {8800,8820}
Debería funcionar en 2008 R2 y versiones más nuevas
Quite el leading =
de la expresión, es decir
"criteria one" , "criteria two"
Si la solución recomendada de alguna manera no funciona para usted, intente usar un semicon como separador.
Ejemplo: criterio uno; criterio dos
Funcionó para mí
Si solo cambia la propiedad Value y simplemente agrega una lista de valores separados por comas que debería funcionar:
Esto funcionó para mí en una prueba rápida, de todos modos.
Los libros en línea parecen ser muy claros en cuanto a los ejemplos, pero encontré una referencia; ver el ejemplo en los filtros utilizados comúnmente . Sería bueno si esto se explicara mejor.
Tuve algunos problemas con este también. La documentación propia de Microsofts indica que una simple lista de valores delimitada por comas en el cuadro Valor debería funcionar. Esto es confuso porque NO LO HACE. Al menos no lo hizo para mí y estoy usando SSRS 2012 con Visual Studio 2010.
Resulta que cuando está utilizando el operador IN, SSRS espera una matriz de valores. Hay varias formas en que puede hacer que esto funcione para el filtro. Los siguientes ejemplos están destinados a ser escritos en el editor de expresiones.
La primera forma (también la forma explicada en el blog vinculado a continuación) es simplemente escribir su lista delimitada por comas en un valor de cadena y luego usar la función de división en él.
=split("2B,2C",",")
O puede derivar su lista de un parámetro multivalor. El parámetro multivalor ya es una matriz, por lo que todo lo que tiene que hacer es hacer referencia a ella a través de la expresión del parámetro como se ve a continuación.
=Parameters!MultiValueParam.Value
Descubrí esta información a través del siguiente blog. http://sqlblogcasts.com/blogs/simons/archive/2007/11/20/RS-Howto--Use-the-IN-operator-in-a-filter-expression.aspx
Cada uno de cada valores numéricos necesita un espacio. funciona bien
"value1" "value2"
con un espacio y sin coma funcionó para mí. Lo curioso es que, cuando vuelves para ver las pruebas, aparece como
value1, value2
con una coma y sin comillas. Si corté eso, luego lo pegué directamente al mismo campo, no funciona. Este es un error s ** t aquí.
El tipo de datos subyacente es nvarchar (10), no nulo
Probado con VS 2017 y SSRS 2016