我如何在sql中实际使用if else更新? 我尝试了很多方法,但它仍然没有用。
这就是问题:
将一个名为“Status”的列添加到关系表Customer,并使用一个UPDATE语句在列中填充有关客户状态的信息。标记'Y'如果客户已下订单,否则'X'将被初始化。
我被困在更新部分。
UPDATE CUSTOMER
IF(customer.customerID IN (SELECT customerID from invoice))
( set status = 'y' )
else
( set status = 'x' )
endif
where status is null;
答案 0 :(得分:2)
您可以使用案例陈述
UPDATE CUSTOMER
SET Status = CASE WHEN CUSTOMER.CUSTOMERId IN (SELECT customerID from invoice)
THEN 'y'
ELSE 'n' END
where status is null;
答案 1 :(得分:2)
你想要做的是一个case语句,因为这是你在sql中最接近IF的地方。
update customer
set status
case
when exists (select customerID from Customer where CustomerID in (select customerID from invoice)
then
'y'
else
'x'
end
where stats is null
答案 2 :(得分:0)
DECLARE @customerID INT
SET @customerID = (SELECT CustomerID
FROM Invoice
WHERE CustomerName = 'some_customer_name')
IF (@customerID = NULL)
BEGIN
UPDATE Customer
SET Status = 'Y'
WHERE CustomerID = @customerID
END
ELSE
BEGIN
UPDATE Customer
SET Status = 'x'
WHERE CustomerID = @customerID
END