Crear un Store Proc. con diferentes tipos de return

Luis Andia
17 de Junio del 2004
Espero alguien me pueda ayudar en este help q pido, ya q es la base para el nuevo sistema q estoy realizando. Mis PK de todas mis tablas son Varchars de diferentes tamaños, ahora, yo tengo q hacer diversas busquedas pero por nombres, q es el campo q le sigue a todos mis PK, algo como su descripcion de ese codigo, tengo informacion de tal modo que tengo muchos nombres que son muy parecidos, les tratare de dar el ejemplo con nombres para q lo puedan pensar mas rapido

TABLA: ARTICULOS
CAMPOS: C_ARTICULO VARCHAR(5) (PK)
NOMBRE VARCHAR(40)

RECORDAR QUE SON VARCHAR ESTOS CAMPOS
EJM DE LOS C_ARTICULOS QUE TENGO:
00001
00002
00003
00004

EJM DE LOS NOMBRES QUE TENGO:
FARO DERECHO BLANCO
FARO DERECHO AZUL
FARO DERECHO NARANJA
FARO DERECHO AMARILLO

El objetivo es q a mi store le pueda mandar una cadena conteniendo : 'FARO DER%' hasta aca facil ya que en mi store el SELECT q tendria que poner seria: NOMBRE LIKE 'FARO DER%', el problema viene como deseo que sea mis RETURN

* SI NO EXISTE NADA QUE RETORNE 0(CERO) O ALGUN VALOR QUE ME DIGA Q NO HAY NADA
* DE EXISTIR SOLO UNA COINCIDENCIA, QUE RETORNE SU CODIGO EN CADENA
* DE EXISTIR MAS DE UNA COINCIDENCIA, PUES QUE ME RETORNE EL LISTADO DE LOS CODIGOS QUE SON PARECIDOS EN BASE AL NOMBRE, ES DECIR PUEDE DEVOLVER '00001', '00003', Q LOS DEVUELVA MEDIANTE UN ARRAY O EN UNA SOLA CADENA, ESO ME ES INDIFERENTE, Y DE NO PODER UN VALOR Q ME DIGA Q HAY MAS DE 1 COINCIDENCIA.

UN POCO EXQUISITO, VERDAD. ESPERO ALGUIEN ME PUEDA AYUDAR.

Isa? Islas
17 de Junio del 2004
Vea este ejemplo:

DECLARE @CONTADOR INT, @MyParametro varchar(20)
SET @MyParametro = '%FARO DER%'

-- Obtengo el resultado del SELECT
SELECT @CONTADOR = COUNT(C_ARTICULO) FROM FTP
WHERE NOMBRE LIKE @MyParametro

-- No hay registros
IF @CONTADOR = 0
SELECT 0
-- Hay UNO, o mas de UNO y le regresa la cantidad de registros que hay.
IF @CONTADOR > 1
SELECT @CONTADOR, C_ARTICULO, NOMBRE FROM FTP WHERE NOMBRE LIKE @MyParametro