Estoy tratando de crear una función SQL que pruebe si un parámetro comienza con un cierto término o contiene el término, pero no comienza con él.¿Cómo creo una función de SQL Server para devolver un int?
Básicamente, si el parámetro comienza con el término, la función devuelve un 0. De lo contrario, devuelve un 1.
Se trata de los huesos de la función que tengo, que estoy tratando de adaptarse de otro función que encontré:
CREATE FUNCTION [dbo].[fnGetRelevance]
(
@fieldName nvarchar(50),
@searchTerm nvarchar(50)
)
RETURNS @value int -- this is showing an error, it seems to expect table but all I want is an int
(
-- does this need to be here? If so, what should it be?
)
AS
BEGIN
declare @field TABLE(Data nvarchar(50))
insert into @field
select Data from @fieldName
if (Data like @searchTerm + '%') -- starts with
begin
return 0
end
else if (Data like '%' + @searchTerm + '%' and Data not like @searchTerm + '%') -- contains, but doesn't start with
begin
return 1
end
END
GO
Parece que usted está tratando de volver 'BIT' (booleano) no' INT'.Aunque hay un tercer estado que no está manejando actualmente; no comienza y no contiene 'searchTerm'. – Jamiec