如何在SQL Server中创建IF

如何在SQL Server中创建IF,sql,sql-server,Sql,Sql Server,我有一个表,其中包含许多请求BursaryRequestId。有些请求具有相同的标识符,因为它们具有原始和修改的副本 我需要编写一个T-SQL脚本,如果修改版本的标识符StatusID等于原始版本,它将检查所有结果。如果不相等,则使用原始版本的版本状态ID更改修改后的版本 您可以在图像上看到,修改后的版本IsOriginal='0'的状态ID为'1',需要像原始版本一样更改为'3'。我想您需要: with toupdate as ( select t.*,

我有一个表,其中包含许多请求BursaryRequestId。有些请求具有相同的标识符,因为它们具有原始和修改的副本

我需要编写一个T-SQL脚本,如果修改版本的标识符StatusID等于原始版本,它将检查所有结果。如果不相等,则使用原始版本的版本状态ID更改修改后的版本

您可以在图像上看到,修改后的版本IsOriginal='0'的状态ID为'1',需要像原始版本一样更改为'3'。

我想您需要:

with toupdate as (
      select t.*,
             max(case when isoriginal = 1 then statusid end) over (partition by identifier) as original_statusid
      from t
     )
update toupdate
    set statusid = original_statusid
    where isoriginal = 0 and statusid <> original_statusid;