如何根据SQL Server中的条件设置列?

如何根据SQL Server中的条件设置列?,sql,sql-server,Sql,Sql Server,我有一列需要根据条件设置为true或false,这是否可以作为现有更新的一部分 例如: UPDATE i SET i.Outstanding = i.Total - @Payments, i.Paid = @Payments , i.Closed = (i.Total <= @Payments) -- THIS DOESNT WORK :( FROM Invoice i JOIN [Transaction] t ON t.Invoice_Id = i.

我有一列需要根据条件设置为true或false,这是否可以作为现有更新的一部分

例如:

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = (i.Total <= @Payments) -- THIS DOESNT WORK :(
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,

i、 Closed=(i.Total您可以使用
CASE
语句

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = CASE WHEN i.Total <= @Payments THEN 1 ELSE 0 END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,

i、 Closed=当i.Total时的CASE,您可以使用
CASE
语句

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = CASE WHEN i.Total <= @Payments THEN 1 ELSE 0 END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,

i、 Closed=当i.Total时的CASE,您可以使用
CASE
语句

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = CASE WHEN i.Total <= @Payments THEN 1 ELSE 0 END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,

i、 Closed=当i.Total时的CASE,您可以使用
CASE
语句

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = CASE WHEN i.Total <= @Payments THEN 1 ELSE 0 END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,

i、 Closed=CASE当i.Total时,您可以使用如下简单的CASE语句

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
i.Paid = @Payments ,
i.Closed = CASE WHEN i.Total <= @Payments THEN 'Your value' ELSE 'your value' END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,

i、 Closed=CASE当i.Total时,您可以使用如下简单的CASE语句

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
i.Paid = @Payments ,
i.Closed = CASE WHEN i.Total <= @Payments THEN 'Your value' ELSE 'your value' END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,

i、 Closed=CASE当i.Total时,您可以使用如下简单的CASE语句

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
i.Paid = @Payments ,
i.Closed = CASE WHEN i.Total <= @Payments THEN 'Your value' ELSE 'your value' END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,

i、 Closed=CASE当i.Total时,您可以使用如下简单的CASE语句

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
i.Paid = @Payments ,
i.Closed = CASE WHEN i.Total <= @Payments THEN 'Your value' ELSE 'your value' END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
更新i
集合i.未付=i.总付款,
i、 已付款=@已付款,
i、 关闭=当i.总计时的情况尝试以下操作:

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = CASE WHEN i.Total <= @Payments THEN 'true' ELSE 'false' END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
阅读更多有关案例的信息。

尝试以下方法:

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = CASE WHEN i.Total <= @Payments THEN 'true' ELSE 'false' END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
阅读更多有关案例的信息。

尝试以下方法:

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = CASE WHEN i.Total <= @Payments THEN 'true' ELSE 'false' END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
阅读更多有关案例的信息。

尝试以下方法:

UPDATE  i
SET     i.Outstanding = i.Total - @Payments,
    i.Paid = @Payments ,
    i.Closed = CASE WHEN i.Total <= @Payments THEN 'true' ELSE 'false' END
FROM    Invoice i
JOIN    [Transaction] t ON t.Invoice_Id = i.Id
WHERE   i.Id = @InvoiceId
阅读有关案例的更多信息。

use语句use语句use语句use语句