【发布时间】:2017-09-07 05:00:25
【问题描述】:
你好,下午好,
我正在尝试编写一个查询来选择多个客户 ID。有时,无论出于何种原因,客户 ID (PK) 可能有一个空白的客户名称,或者一个包含 4 或 5 个空格的客户名称,但没有数字或字母(名称可以是任何数字或字母字符串,有时“ ——”也是)。
如何过滤掉它?除了我的其他 WHERE 子句之外,我当前的查询看起来像这样。我需要确保 CustomerName 不只是一堆空格或空的。它需要有一些字母数字文本,或 -:
SELECT cust.CustomerID, cust.CustomerName
FROM cust
WHERE cust.StartDate Between '01-Jun-2017' AND '01-Sep-2017' AND cust.CustomerID Like '%100%' Or cust.CustomerID Like '%200%'
但是,我希望看起来像这样:
AND CustomerName NOT LIKE '% %' OR != ""
任何建议将不胜感激!
【问题讨论】:
-
使用
TRIM函数怎么样? -
或替换
replace(' this is a test',' ',''), coalesce(replace(' ',' ',''),'x') as ExcludeMe -
为什么关于'-'的评论你也想用它做一些特别的事情?
-
@RadimBača 如果可以,请查看我的更新。问题是有时,客户名称字段已输入为“”或“”或“”,我不想要这些结果。
-
@mathguy 你能把这个作为一个完整的回复发布吗?你的回答很完美......我不知道我可以把 TRIM(CustomerName) IS NOT NULL 放在我的选择语句中。你能告诉我正确的语法吗?