我有一个包含 200,000 个帐户的数据库,其中包含个人/家庭,即 John Doe 和企业名称。我想创建一个 SELECT 语句来仅选择企业名称,我相信唯一可能的编写方法是:
and (account like'%inc.'
or account like'%ltd'
or account like'&gmbh')
...ETC。
有没有人写过这样的东西?我还需要包括国际后缀,但我什至找不到按国家/地区列出的可靠列表。
答案是,你做不到。如果你的数据太脏以至于你不知道个人和企业之间的区别,你为什么认为最后会有一个'inc.'
, 'gmbh'
或'ltd'
?
然后,您需要考虑令人兴奋的公司名称,例如“John Deere”或“Arthur Andersen”。这些看起来很像一个人的名字。如果您没有公司结构指标,那么您将如何区分?
正确的解决方案是使用第三方供应商来更正帐户名称。您还可以考虑更改您的操作系统(输入名称的人)以放入个人/公司指示器。顺便说一句,您如何处理自己合并的个人,例如在美国作为 S-Corp 的个人?
如果您想开始一项临时工作,那么我将从查看每个名称中的最后一个单词开始:
select right(name, charindex(' ', reverse(name))), count(*), min(name), max(name)
from t
where name like '% %'
group by left(name, charindex(' ', name))
(这是获取名称中最后一个单词的 SQL Server 语法。)查看这些以查看可能的后缀列表。
顺便说一句,如果这是国际性的,如果某些语言使用前缀而不是后缀来表示公司,我不会感到惊讶。