Visualizzazione dei risultati da 1 a 5 su 5

Discussione: like e varchar

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573

    like e varchar

    Giorno a tutti.
    Ho un problema abbastanza banale...
    ho questa stored:
    CREATE PROCEDURE T_ContrattiSelProc
    (
    @Contratto varchar
    )
    AS
    SELECT T_Contratti.*, T_Modifiche.IdModifica
    FROM T_Contratti LEFT JOIN T_Modifiche ON T_Contratti.IdContratto = T_Modifiche.IdContratto
    WHERE T_Contratti.CodiceContratto LIKE '%'+@Contratto+'%'
    GO

    CodiceContratto è varchar e ad esempio, è una stringa fatta così: cnt_019/05

    Ora se io passo alla stored "19" mi tira fuori un sacco di risultati di cui non capisco il criterio ma se lancio una query nella tabella fatta così:
    SELECT T_Contratti.*, T_Modifiche.IdModifica
    FROM T_Contratti LEFT JOIN T_Modifiche ON T_Contratti.IdContratto = T_Modifiche.IdContratto
    WHERE T_Contratti.CodiceContratto LIKE '%19%'

    Tutto funziona e prende solo quello che dovrebbe... qualcuno sa spiegarmi il motivo?

    Ciao Elisa

  2. #2
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Scusa la banalità, ma non è che nel db hai il campo codice_contratto formato sempre da :cnt_019/05, cnt_018/05 ecc..?
    Se la situazione è questa, utilizzando il like ti troverà sempre il 'cnt_' che è sempre presente in tutti i contratti.
    Se usi solo il ....LIKE '%19%' funziona perchè trova tutte (e solo quelle/a) le corrispondenze della stringa '19'.
    Ciao
    Legnetto

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    573
    Scusa ma non ho ben capito...
    Quando io passo il parametro @Contratto alla SP gli passo un numero, tipo 19, 17... quindi, non dovrebbe funzionare lo stesso?

  4. #4
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Sicuramente ho mal interpretato quello che hai postato sopra, mi sembrava di aver capito che il parametro @Contratto fosse formato dalla stringa completa 'cnt_019/05' ad esempio, in quella situazione era normale che trovasse tutte le occorrenze sempre.
    Se il parametro è formato da '19' sinceramente non riesco a capire il motivo.
    Mi spiace.
    Ciao
    Legnetto

  5. #5
    Puoi mandare qualche record che non dovrebbe tornare la stored procedure?
    Il codice è corretto..
    Ciao
    K
    Kalman

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.