>Se per dire scrivo 1, devo cercare tutti quei codici che incominciano con 1,
>se scrivo A, devo cercare ...... tutti quei record che incominciano con A.
quindi hai 1 parametro di lunghezza 1 carattere
e vuoi filtrare sul campo Codice tutti i record che iniziano per il tuo parametro
io abbandonerei il LIKE a favore di LEFT(Codice,1)
che restituisce appunto il 1° carattere a sinistra
se fosse Access farei cosi:
SELECT T2.T2Id, T2.Codic, T2.Descr, T2.UnMis, T2.CoIva, T2.AlIva, T2.Prezz
FROM T2
WHERE (Left([T2].[Codic],1)=[xxxx])
;
che tradotto in SQLServer
USE Test5
GO
declare @xxxx nvarchar(1)
set @xxxx = 'f'
SELECT T2Id, Codic, Descr, UnMis, CoIva, AlIva, Prezz
FROM dbo.T2
WHERE (LEFT(Codic, 1) = @xxxx)
;
GO
Se invece del primo carattere vuoi i primi n caratteri allora usi anche il Len(.....) che restituisce il numero di caratteri del parametro .....
SELECT T2.T2Id, T2.Codic, T2.Descr, T2.UnMis, T2.CoIva, T2.AlIva, T2.Prezz
FROM T2
WHERE (Left([T2].[Codic],Len([xxxx]))=[xxxx])
;
USE Test5
GO
declare @xxxx nvarchar(50)
set @xxxx = 'df'
SELECT T2Id, Codic, Descr, UnMis, CoIva, AlIva, Prezz
FROM dbo.T2
WHERE (LEFT(Codic, LEN(@xxxx)) = @xxxx)
;
GO