Libras, finalmente logre que funcione con la siguiente sentencia:
Código SQL:
Ver originalSELECT * FROM (SELECT RXFAM1, RXFAM2, RXFAM3, PSPREC, VMVNNM, ROW_NUMBER()
OVER (ORDER BY CASE WHEN @marc = ''ok'' THEN VMVNNM END ASC, CASE WHEN @prc = ''DESC'' THEN PSPREC END DESC, CASE WHEN @prc = ''ASC'' THEN PSPREC END ASC) AS RowNum FROM Recursos
WHERE
CPA01 LIKE @clave + ''%'')
AS Paginacion WHERE RowNum BETWEEN 8 * @PageNumber + 1 AND 8 * (@PageNumber + 1)
Utilizando la misma estructura que funciono (lo que acabo de poner) modifique el LIKE por varios AND en otro SQL, e increiblemente vuelvo a mostrar el mismo error de antes.
Se especificó una expresión no booleana en un contexto donde se esperaba una condición, cerca de 'BETWEE'.
El otro SQL:
Código SQL:
Ver originalSELECT * FROM (SELECT RXFAM1, RXFAM2, RXFAM3, PSPREC, VMVNNM, ROW_NUMBER()
OVER (ORDER BY CASE WHEN @marc = ''ok'' THEN VMVNNM END ASC, CASE WHEN @prc = ''DESC'' THEN PSPREC END DESC, CASE WHEN @prc = ''ASC'' THEN PSPREC END ASC) AS RowNum FROM Recursos
WHERE
(RXFAM1 = COALESCE(NULLIF(@ref1, ''''), RXFAM1)
AND
RXFAM2 = COALESCE(NULLIF(@ref2, ''''), RXFAM2)
AND
RXFAM3 = COALESCE(NULLIF(@ref3, ''''), RXFAM3))
AS Paginacion WHERE RowNum BETWEEN 8 * @PageNumber + 1 AND 8 * (@PageNumber + 1)
Veo que el problema surge cuando pongo el tercer AND (tengo que poner seis en total). Esto me desorienta por completo, alguna idea?? desde ya, gracias.