Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Null on Null Input | False |
| Schema Bound | False |
| Assembly |
Parameters
2| Name | Data Type | Length | Description |
|---|---|---|---|
| (Result) | varchar | 500 | |
| @razon_social | varchar | 500 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
declare @nombre varchar(500) = 'AGROPLANTA S R L'
declare @nombre varchar(500) = 'banco de galicia'
select dbo.Eliminar_omitidos (@nombre)
delete from omitidos where omi1 =' DE '
select * from sinonimos
*/
CREATE OR ALTER FUNCTION dbo.Eliminar_omitidos
(
@razon_social varchar(500)
)
RETURNS varchar(500)
AS
BEGIN
while @razon_social like '% %'
begin
set @razon_social = replace (@razon_social, ' ', ' ')
end
declare @razon_social2 varchar(500) = @razon_social
declare @omi1 varchar(50),
@omi2 varchar(50),
@omi3 varchar(50),
@omi4 varchar(50),
@omi5 varchar(50),
@omi6 varchar(50),
@omi7 varchar(50),
@omi8 varchar(50),
@omi9 varchar(50),
@omi10 varchar(50),
@valor varchar(500),
@valor1 varchar(500),
@id int
declare @palabras table (valor varchar(50))
DECLARE Palabras CURSOR FOR
select omi1, omi2, omi3, omi4, omi5, omi6, omi7, omi8, omi9, omi10 from omitidos
set @razon_social = '<<<<<' + @razon_social + '>>>>>'
Open Palabras
Fetch next from Palabras into @omi1,
@omi2,
@omi3,
@omi4,
@omi5,
@omi6,
@omi7,
@omi8,
@omi9,
@omi10
WHILE @@FETCH_STATUS = 0
BEGIN
if (ISNULL(ltrim(rtrim(@omi1)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi1)))
if (ISNULL(ltrim(rtrim(@omi2)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi2)))
if (ISNULL(ltrim(rtrim(@omi3)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi3)))
if (ISNULL(ltrim(rtrim(@omi4)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi4)))
if (ISNULL(ltrim(rtrim(@omi5)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi5)))
if (ISNULL(ltrim(rtrim(@omi6)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi6)))
if (ISNULL(ltrim(rtrim(@omi7)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi7)))
if (ISNULL(ltrim(rtrim(@omi8)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi8)))
if (ISNULL(ltrim(rtrim(@omi9)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi9)))
if (ISNULL(ltrim(rtrim(@omi10)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi10)))
Fetch next from Palabras into @omi1,
@omi2,
@omi3,
@omi4,
@omi5,
@omi6,
@omi7,
@omi8,
@omi9,
@omi10
END
CLOSE Palabras
DEALLOCATE Palabras
--select * from @palabras
DECLARE Palabras2 CURSOR FOR
select valor from @palabras
OPEN Palabras2
Fetch next from Palabras2 into @valor1
WHILE @@FETCH_STATUS = 0
BEGIN
if (ISNULL(ltrim(rtrim(@valor1)),'') != '')
begin
set @valor = '<<<<<' + @valor1 + ' '
set @razon_social = replace(@razon_social,@valor,'<<<<<')
set @valor = ' ' + @valor1 + '>>>>>'
set @razon_social = replace(@razon_social,@valor,'>>>>>')
set @valor = ' ' + @valor1 + ' '
set @razon_social = replace(@razon_social,@valor,' ')
end
Fetch next from Palabras2 into @valor1
END
CLOSE Palabras2
DEALLOCATE Palabras2
set @razon_social = replace(@razon_social,'<<<<<','')
set @razon_social = replace(@razon_social,'>>>>>','')
set @razon_social = LTRIM(rtrim(@razon_social))
-- si termina con solo una letra elimina esa letra del final
DECLARE @ultimo_espacio int = 0
set @ultimo_espacio = LEN(@razon_social) - CHARINDEX(' ',REVERSE(@razon_social)) + 1
if (@ultimo_espacio = LEN(@razon_social) - 1)
set @razon_social = SUBSTRING(@razon_social, 1, @ultimo_espacio-1)
set @razon_social2 = @razon_social
return @razon_social2
END
GO
GO
/*
declare @nombre varchar(500) = 'AGROPLANTA S R L'
declare @nombre varchar(500) = 'banco de galicia'
select dbo.Eliminar_omitidos (@nombre)
delete from omitidos where omi1 =' DE '
select * from sinonimos
*/
CREATE OR ALTER FUNCTION dbo.Eliminar_omitidos
(
@razon_social varchar(500)
)
RETURNS varchar(500)
AS
BEGIN
while @razon_social like '% %'
begin
set @razon_social = replace (@razon_social, ' ', ' ')
end
declare @razon_social2 varchar(500) = @razon_social
declare @omi1 varchar(50),
@omi2 varchar(50),
@omi3 varchar(50),
@omi4 varchar(50),
@omi5 varchar(50),
@omi6 varchar(50),
@omi7 varchar(50),
@omi8 varchar(50),
@omi9 varchar(50),
@omi10 varchar(50),
@valor varchar(500),
@valor1 varchar(500),
@id int
declare @palabras table (valor varchar(50))
DECLARE Palabras CURSOR FOR
select omi1, omi2, omi3, omi4, omi5, omi6, omi7, omi8, omi9, omi10 from omitidos
set @razon_social = '<<<<<' + @razon_social + '>>>>>'
Open Palabras
Fetch next from Palabras into @omi1,
@omi2,
@omi3,
@omi4,
@omi5,
@omi6,
@omi7,
@omi8,
@omi9,
@omi10
WHILE @@FETCH_STATUS = 0
BEGIN
if (ISNULL(ltrim(rtrim(@omi1)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi1)))
if (ISNULL(ltrim(rtrim(@omi2)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi2)))
if (ISNULL(ltrim(rtrim(@omi3)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi3)))
if (ISNULL(ltrim(rtrim(@omi4)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi4)))
if (ISNULL(ltrim(rtrim(@omi5)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi5)))
if (ISNULL(ltrim(rtrim(@omi6)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi6)))
if (ISNULL(ltrim(rtrim(@omi7)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi7)))
if (ISNULL(ltrim(rtrim(@omi8)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi8)))
if (ISNULL(ltrim(rtrim(@omi9)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi9)))
if (ISNULL(ltrim(rtrim(@omi10)),'') != '') INSERT INTO @palabras values (ltrim(rtrim(@omi10)))
Fetch next from Palabras into @omi1,
@omi2,
@omi3,
@omi4,
@omi5,
@omi6,
@omi7,
@omi8,
@omi9,
@omi10
END
CLOSE Palabras
DEALLOCATE Palabras
--select * from @palabras
DECLARE Palabras2 CURSOR FOR
select valor from @palabras
OPEN Palabras2
Fetch next from Palabras2 into @valor1
WHILE @@FETCH_STATUS = 0
BEGIN
if (ISNULL(ltrim(rtrim(@valor1)),'') != '')
begin
set @valor = '<<<<<' + @valor1 + ' '
set @razon_social = replace(@razon_social,@valor,'<<<<<')
set @valor = ' ' + @valor1 + '>>>>>'
set @razon_social = replace(@razon_social,@valor,'>>>>>')
set @valor = ' ' + @valor1 + ' '
set @razon_social = replace(@razon_social,@valor,' ')
end
Fetch next from Palabras2 into @valor1
END
CLOSE Palabras2
DEALLOCATE Palabras2
set @razon_social = replace(@razon_social,'<<<<<','')
set @razon_social = replace(@razon_social,'>>>>>','')
set @razon_social = LTRIM(rtrim(@razon_social))
-- si termina con solo una letra elimina esa letra del final
DECLARE @ultimo_espacio int = 0
set @ultimo_espacio = LEN(@razon_social) - CHARINDEX(' ',REVERSE(@razon_social)) + 1
if (@ultimo_espacio = LEN(@razon_social) - 1)
set @razon_social = SUBSTRING(@razon_social, 1, @ultimo_espacio-1)
set @razon_social2 = @razon_social
return @razon_social2
END
GO