下面的第一个代码带来了期望的结果,但是第二个没有。 使用||有什么含义?运算符?
第一个查询:
SELECT
a.ID_CUSTOMER,
a.ID_VENDOR
FROM a
LEFT JOIN b
ON a.ID_CUSTOMER=b.ID_CUSTOMER
AND a.ID_VENDOR=b.ID_VENDOR
WHERE 1=1
AND b.ID_CUSTOMER IS NULL
AND b.VENDOR IS NULL
第二个查询:
SELECT
a.ID_CUSTOMER,
a.ID_VENDOR
FROM a
LEFT JOIN b
ON a.ID_CUSTOMER||a.ID_VENDOR=b.ID_CUSTOMER||b.ID_VENDOR
WHERE b.ID_CUSTOMER||b.ID_VENDOR IS NULL
答案 0 :(得分:2)
||
是字符串连接。如果 any 的值为NULL
,则结果为NULL
,因此等效于:
WHERE b.ID_CUSTOMER IS NULL OR b.ID_VENDOR IS NULL
此外,字符串串联没有“边界”,因此'123'||'456'
与'12'||'3456'
匹配。