我想检查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
Run Code Online (Sandbox Code Playgroud)
因此,我不是一次又一次地使用IS NOT NULL,而是想简化一些事情
小智 17
SELECT * FROM AB_DS_TRANSACTIONS
WHERE COALESCE(COUNTRY_ID,GEO_CUST_COUNTRY_ID,INVOICE_DATE,ABB_GLOBALID,SALES_ORG_ID,DIST_ID,CUSTOMER_ID,REPORT_UNIT_ID,CURR_INVOICE,DIVISION_CODE) IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
您可以使用
SELECT * FROM table1
WHERE NOT (Column1 IS NULL OR
Column2 IS NULL OR
Column3 IS NULL OR
Column4 IS NULL
IS NOT NULL)
Run Code Online (Sandbox Code Playgroud)
根据OP评论,更新答案
INSERT INTO Table_A
SELECT column1, column2, column3,column4
FROM Table_B
WHERE NOT (Column1 IS NULL OR
Column2 IS NULL OR
Column3 IS NULL OR
Column4 IS NULL
IS NOT NULL);
Run Code Online (Sandbox Code Playgroud)
我可以减少50个字符
SELECT * FROM AB_DS_TRANSACTIONS
WHERE
FK_VIOLATION IS NULL
AND TRANSACTION_ID NOT
IN(SELECT distinct TRANSACTION_ID FROM AB_TRANSACTIONS)
AND
NOT (
COUNTRY_ID IS NULL
OR GEO_CUST_COUNTRY_ID IS NULL
OR INVOICE_DATE IS NULL
OR ABB_GLOBALID IS NULL
OR SALES_ORG_ID IS NULL
OR DIST_ID IS NULL
OR CUSTOMER_ID IS NULL
OR REPORT_UNIT_ID IS NULL
OR CURR_INVOICE IS NULL
OR DIVISION_CODE IS NULL
)
Run Code Online (Sandbox Code Playgroud)
我认为您正在寻找的语法仅显示那些不为空的行是这个
SELECT * from table_B
where COLUMN1 is not null and COLUMN2 is not null and COLUMN3 is not null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41412 次 |
| 最近记录: |