Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/01/2009, 12:43
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años, 1 mes
Puntos: 38
Respuesta: Encontrar un Caracter segun un formato

Esta seria una forma,

Pero si lo pones en el where te pegara en el performance sobre todo si la estaras usando sobre una tabla con muchos registros.

Lo mejor seria hacer un proceso que obtenga este valor en un campo por separado para que no tengas que estar calculandolo cada vez que lo necesites..

Si es una tabla pequena o se ejecuta en el select (campos seleccionados) que siempre devuelve pocos valores no tendras problemas..

En fin ahi evalua la conveniencia de su uso..

Código:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fnReturnKeyValue]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fnReturnKeyValue]
GO


Create function dbo.fnReturnKeyValue (@strField as varchar(400))
returns char(1)
AS
Begin
   return SUBSTRING(@strField, CHARINDEX('-', @strField, 1) - 1,1)
End
GO

SELECT dbo.fnReturnKeyValue(reverse('pgt-sds-100')) Field1
      ,dbo.fnReturnKeyValue(reverse('wew-ww-3'))    Field2
      ,dbo.fnReturnKeyValue(reverse('eue-400'))     Field3



Field1 Field2 Field3 
------ ------ ------ 
1      3      4

(1 row(s) affected)
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.