SQL Server 2012 - У меня есть представление (сложное), и один из столбцов должен иметь что-то нечисловое. Следующее работает до определенного момента;sql-скалярные функции невероятно медленные
STUFF(dbo.campaign_tracking_clicks.tt_cpn, 1, PATINDEX('%[0-9]%', dbo.campaign_tracking_clicks.tt_cpn) - 1, '') AS emailerid
Я получаю сообщение об ошибке, если что-то, кроме цифр, находится в конце значения.
У меня есть скалярная функция»
/****** Object: UserDefinedFunction [dbo].[KeepNumCharacters] Script Date: 10/11/2016 1:05:51 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Function [dbo].[KeepNumCharacters](@Temp VarChar(100)) Returns VarChar(100)
AS
Begin
While PatIndex('%[^0-9]%', @Temp) > 0
Set @Temp = Stuff(@Temp, PatIndex('%[^0-9+]%', @Temp), 1, '')
Return @TEmp
End
Я использую;
dbo.KeepNumCharacters(dbo.campaign_tracking_clicks.tt_cpn) AS emailerid
Но для этого требуется очень много времени. Я искал и искал, но не нашел альтернативы.
Похоже, что эти данные должны быть в его собственном поле. – Missy
У меня нет такой роскоши. – user990016
Сколько строк у вас в таблице? –