我正在尝试为我的公司过滤掉我的 Excel 客户表中的数据。我需要的三个字段是FIRST_NAME
、LAST_NAME
和COMPANY_NAME
。
规则如下:
FIRST_NAME
并且LAST_NAME
必须NOT
是NULL
FIRST_NAME
ANDLAST_NAME
只能是字母COMPANY_NAME
如果是,上述规则无关紧要NOT NULL
所以,重申一下。客户必须有一个FIRST_NAME
AND a LAST_NAME
(他们不能缺少一个或两个),但是,如果他们有 aCOMPANY_NAME
他们被允许没有 aFIRST_NAME
和/或LAST_NAME
。
这是一些示例数据,它们是否应该保留在数据中:
FIRST_NAME | LAST_NAME | COMPANY_NAME | Good customer?
-----------|-----------|--------------|--------------------------------
Alex | Goodman | AG Inc. | Yes - All are filled out
John | Awesome | | Yes - First and last are fine
Cindy | | Cindy Corp. | Yes - Company is filled out
| | Blank Spa | Yes - Company is filled out
| | | No - Nothing is filled out
Gordon | Mang#2 | | No - Last contains non-alphabet
Jesse#5 | Levvitt | JL Inc. | Yes - Company is filled out
Holly | | | No - No last or company names
这是查询(SELECT
删除了子句中的一些字段):
SELECT VR_CUSTOMERS.CUSTOMER_ID, VR_CUSTOMERS.FIRST_NAME, VR_CUSTOMERS.LAST_NAME, VR_CUSTOMERS.COMPANY_NAME, ...
FROM DEV.VR_CUSTOMERS VR_CUSTOMERS
WHERE (
LENGTH(NAME)>4 AND
(UPPER(NAME) NOT LIKE UPPER('%delete%')) AND
(COMPANY_NAME IS NOT NULL OR (COMPANY_NAME IS NULL AND FIRST_NAME IS NOT NULL AND LAST_NAME IS NOT NULL AND FIRST_NAME LIKE '%^[A-z]+$%' AND LAST_NAME LIKE '%^[A-z]+$%'))
)
我也尝试过'%[^a-z]%'
. 我试过RLIKE
and REGEXP
,而不是LIKE
, 而那些似乎也不起作用。
使用上述查询,结果仅显示带有COMPANY_NAME
.