我想检查WHERE
子句中单个SQL语句中多个列的is not null约束,有没有办法做到这一点?另外,我不想在列定义上强制NOT NULL
类型约束。
SELECT * FROM AB_DS_TRANSACTIONS
WHERE FK_VIOLATION IS NULL
AND TRANSACTION_ID NOT IN(
SELECT distinct TRANSACTION_ID FROM AB_TRANSACTIONS)
AND COUNTRY_ID IS NOT NULL
AND GEO_CUST_COUNTRY_ID IS NOT NULL
AND INVOICE_DATE IS NOT NULL
AND ABB_GLOBALID IS NOT NULL
AND SALES_ORG_ID IS NOT NULL
AND DIST_ID IS NOT NULL
AND CUSTOMER_ID IS NOT NULL
AND REPORT_UNIT_ID IS NOT NULL
AND CURR_INVOICE IS NOT NULL
AND DIVISION_CODE IS NOT NULL
因此,我不想一遍又一遍地使用ISNOTNULL,而是想简化一些事情
5条答案
按热度按时间slmsl1lt1#
您可以使用
根据OP备注,更新回答
使用INSERT和SELECT子查询插入行
您的查询
我可以减少大约50个字符
qkf9rpyu2#
e3bfsja23#
我认为您正在寻找的语法是只显示所有非空的行
ljsrvy3e4#
在BigQuery中(可以在其他数据库中使用)-我会使用concat函数。确保在需要的地方使用字符串或将字段转换为字符串。如果其中一个字段为空,Concat将返回空值。
8oomwypt5#
我认为一个策略是使用最少函数?
这里的限制是所有的参数必须是相同的类型,所以看起来OP的列可能需要转换为str或其他类型。
如果我们可以克服这个限制,我认为下面的代码应该可以检查是否有任何列为空:
ps -使用雪花。