Inicio > Sql Server 2005 - 2008 > Función SUBSTRING_INDEX de MySql en Sql Server

Función SUBSTRING_INDEX de MySql en Sql Server


 No es el reemplazo exacto de la función SUBSTRING_INDEX de MySQL. Tendrán  que usar algunas funciones en pareja para encontrar el resultado que esperan.

Pero el resultado es el mismo :

DECLARE @SUBSTRING_INDEX AS VARCHAR(50)

SET @SUBSTRING_INDEX = ‘CIUDAD DE JAUJA, JAUJA’
SELECT SUBSTRING(@SUBSTRING_INDEX , CHARINDEX( ‘,’ , @SUBSTRING_INDEX ) + 1 , LEN( @SUBSTRING_INDEX ) – ( CHARINDEX( ‘,’ , @SUBSTRING_INDEX ) – 2 ) )

SET @SUBSTRING_INDEX = ‘CIUDAD DE LIMA, LIMA CAPITAL’
SELECT SUBSTRING(@SUBSTRING_INDEX , CHARINDEX( ‘,’ , @SUBSTRING_INDEX ) + 1 , LEN( @SUBSTRING_INDEX ) – ( CHARINDEX( ‘,’ , @SUBSTRING_INDEX ) – 2 ) )

SET @SUBSTRING_INDEX = ‘CIUDAD DE TRUJILLO, TRUJILLO’
SELECT SUBSTRING(@SUBSTRING_INDEX , CHARINDEX( ‘,’ , @SUBSTRING_INDEX ) + 1 , LEN( @SUBSTRING_INDEX ) – ( CHARINDEX( ‘,’ , @SUBSTRING_INDEX ) – 2 ) )

GO

  1. Omar Rodriguez
    9 diciembre 2011 a las 1:00 pm

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    create FUNCTION [dbo].fnSubstring_Index
    (
    @BaseString varchar(255),
    @caracter varchar(255),
    @pos tinyint
    ) RETURNS varchar(255)

    AS
    /* ****************************************************
    Description:
    EQuivalent a mysql substring_index—- —- ———–
    Create by Omar Rodriguez Tineo, From Santiago, Dominican Republic.
    Please dont remove this if you like the function
    **************************************************** */
    BEGIN

    /*
    DECLARE @pos INT
    Declare @BaseString varchar(255)
    Declare @caracter varchar(255)
    */
    Declare @indice tinyint
    Declare @pos2 tinyint
    Declare @result varchar(255)

    set @pos2= 1
    set @indice = 0
    –set @BaseString=’hola mudo sato bueno cinco seis siete’
    –set @pos = 2
    –set @caracter= ‘ ‘

    while @indice < @pos
    begin
    begin

    set @pos2 = CHARINDEX(@caracter,@BaseString,@pos2+1)
    — print @pos2

    set @indice = @indice +1

    end

    if @indice = @pos
    begin
    set @result= left(@BaseString,@pos2)
    –print @result
    break
    end
    else
    continue

    end

    RETURN @result
    END

  1. 10 junio 2010 a las 6:18 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: