过滤掉 Snowflake 中的空字符串

Agn*_*hka 5 sql filtering blank-line snowflake-cloud-data-platform

我有一个非常简单的任务,但事实证明这是不可能的。我有一列包含字符串,但在应该是单词的地方也有空格(这些不是 NULL,它们只是空字符串)。例如:

LastName1,
EmptyRow,
LastName2,
EmptyRow,
EmptyRow,
LastName3...
Run Code Online (Sandbox Code Playgroud)

由于空行不是 NULL,因此 IS NOT NULL 函数不起作用。

在最终结果中,我只需要过滤掉所有实际具有值的行并删除所有空行。有人可以给个建议吗?

Sha*_*her 11

您可以通过应用 LENGTH 函数来过滤掉这些记录。

WHERE LENGTH(TRIM(COL_NAME)) > 0
Run Code Online (Sandbox Code Playgroud)

  • 小心姊妹版本:“where length(trim(colname)) = 0”,它也会评估为 false 且值为空! (2认同)

Gor*_*off 1

您需要知道“空”行意味着什么。最有可能是一个空字符串:

where lastname > ''
Run Code Online (Sandbox Code Playgroud)

如果您需要确保至少有一个字母,您可以使用:

where lastname regexp '[a-zA-Z]'
Run Code Online (Sandbox Code Playgroud)

或者:

where lastname regexp '[[:alpha:]]'
Run Code Online (Sandbox Code Playgroud)