我想在invoiceID
为NULL
时更新所有行,否则只更新所有invoiceID
相同的行。
我当前的SQL语句如下:
UPDATE Table SET strPOnummer = '123'
WHERE strPOnummer = '456' AND strPOnummer != '' AND strPOnummer IS NOT NULL
因此,当Table.invoiceID
为NULL
时,它应该更新所有行,否则只更新invoiceID
相同的行。
答案 0 :(得分:1)
假设invoiceID是输入参数,您可以这样做:
UPDATE Table
SET strPOnummer = '123'
WHERE --your non-invoiceID filtering conditions go here
AND (Table.invoiceID = @InvoiceID OR @InvoiceID IS NULL)
在这种情况下,如果@InvoiceID参数不为null,则必须满足第一个条件,因为第二个条件永远不会满足,但如果它为null,则表的每一行将与第二个部分匹配。条件,因此第一个不再相关
答案 1 :(得分:0)
我会写一些示例而不是代码来使用,请根据需要自行修改
SELECT IF(invoiceID=1,
(UPDATE table as tmp SET... WHERE tmp.id=table.id),
(UPDATE table as tmp SET... WHERE tmp.id=table.id)
) FROM table);