0
您好我有我的數據庫中的兩個表,一個登記表一中「註冊人名稱」字段和其他信息和參考/查找表包含一個名爲「Business_Identifier」列SQL比較註冊人名稱的參考表
這個想法是將「註冊人名稱」字段中的數據與「Business_Identifier」列中包含的數據進行比較,以確定「註冊人名稱」字段中包含的數據是公司或個人的數據。
一個例子是:
Registrant Table:
ID: 1234
Registrant NAme: ABC Ltd
Lookup Table:
ID:1,2,3
Business_Identifier: ltd,PLC,LLC
我正在創建一個存儲過程,它將執行某種形式的匹配查找表數據並查看它是否出現在「註冊人名稱」字段中,從而將該記錄標識爲業務。
我創建了一個腳本carrys了靜態列表模式匹配,見下面的例子,但我需要把靜態列表插入表,以便它可以被更新
當前腳本:
With Test as (
SELECT *
FROM [Registrant_Table]
where (patindex('%[0-9]%',UPPER([Registrant name])) > 0
or patindex('%null%',UPPER([Registrant name])) > 0
or patindex('%n/a%',UPPER([Registrant name])) > 0
or patindex('na',UPPER([Registrant name])) > 0
or patindex('%LTD%',UPPER([Registrant name])) > 0
or patindex('%None%',[Registrant name]) > 0
or patindex('%unknown%',[Registrant name]) > 0
or patindex('%Ltd%',[Registrant name]) > 0
or patindex('%ltd%',[Registrant name]) > 0
or patindex('%LLC%',[Registrant name]) > 0
or patindex('%LLc%',[Registrant name]) > 0
or patindex('%LLP%',[Registrant name]) > 0
or patindex('%LLp%',[Registrant name]) > 0
or patindex('%llp%',[Registrant name]) > 0
or patindex('%Limited%',[Registrant name]) > 0
or patindex('%LIMITED%',[Registrant name]) > 0
or patindex('%Limi%',[Registrant name]) > 0
or patindex('%Company%',[Registrant name]) > 0
or patindex('%Tele%',[Registrant name]COLLATE Latin1_General_CS_AI) > 0
or patindex('%Trade%',[Registrant name]) > 0
or patindex('%Host%',[Registrant name]) > 0
or patindex('%Domain%',[Registrant name]) > 0
)
select *
Into [Registrant_Table_Business]
from Test
任何幫助,將不勝感激
感謝
嗨@Nikola,我覺得你的右邊線,我查看了您的查詢並試圖運行它,但遇到以下錯誤:消息207,級別16,狀態1,行5 列名稱'IsUpper'無效。 消息207,級別16,狀態1,行6 無效的列名稱'IsLatin1_General_CS_AI'。 消息207,級別16,狀態1,行10 無效的列名稱'IsLatin1_General_CS_AI'。 – 2012-07-20 11:08:20
@MarkSouthwell哦,我建議你把這兩列添加到查找表中,以便能夠控制如何進行模式匹配;我注意到有時候你在比較Upper([註冊人名稱]),而在一個實例中,你正在改變整理。 – 2012-07-20 11:18:16
@MarkSouthwell請檢查我編輯的答案。 – 2012-07-20 11:24:11