2014-01-15 171 views
0

我有一個查詢SQL查詢使用正則表達式

select de 
from [KDashboard].[dbo].[EmailsRecebidos] 

返回「弗朗西斯科·卡瓦略」

所以我想獲得的電子郵件中的一個變量... 我試試這個:

DECLARE @NumStr varchar(1000) 
select de 
from [KDashboard].[dbo].[EmailsRecebidos] 
set @NumStr = dbo.Regex_Replace(De,'<[%-z]*>','<[%-z]*>',null) 

,但沒有工作...以下錯誤:

「找不到任何列‘DBO’或T他用戶定義的函數或集合「dbo.Regex_Replace」,或名稱不明確。「

有人可以幫我嗎? 感謝

+0

你有沒有定義的用戶定義的函數? MySQL沒有原生的方式去做正則表達式替換(除非你不使用MySQL並且你錯誤地標記了這個問題) – sjagr

+1

這是Mysql還是sql-server?你應該採取或另一個標籤關閉 –

+0

解決:) 選擇子字符串(德,charindex('<',德),charindex('>',德)-charindex('<',德))作爲結果 從[ KDashboard]。[dbo]。[EmailsRecebidos] –

回答

0

我相信你正在尋找的是這樣的:

select @NumStr = dbo.Regex_Replace(De,'<[%-z]*>','<[%-z]*>',null) 
from [KDashboard].[dbo].[EmailsRecebidos] 
0
select de 
from [KDashboard].[dbo].[EmailsRecebidos] 

你的查詢可以返回多個行。如果你只是想一排...

DECLARE @NumStr varchar(1000) 
SET @NumStr = (SELECT top 1 dbo.Regex_Replace(De,'<[%-z]*>','<[%-z]*>',null) from 
[KDashboard].[dbo].[EmailsRecebidos]) 
SELECT @NumStr 

或者,如果你想使用該功能的所有行...

SELECT dbo.Regex_Replace(De,'<[%-z]*>','<[%-z]*>',null) from 
[KDashboard].[dbo].[EmailsRecebidos] 
+0

假設您嘗試使用的dbo.Regex_Replace函數實際上存在。 – Andy