Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在update语句中使用交叉应用_Sql Server_Sql Server 2005_Sql Update_Cross Apply - Fatal编程技术网

Sql server 在update语句中使用交叉应用

Sql server 在update语句中使用交叉应用,sql-server,sql-server-2005,sql-update,cross-apply,Sql Server,Sql Server 2005,Sql Update,Cross Apply,在SQL Server 2005中,是否可以在update语句的from部分使用交叉应用子句?请选择正确的位置,Albert。我做了一些测试,发现这确实是可能的。用法与SELECT语句中的用法相同。例如: UPDATE some_table SET some_row = A.another_row, some_row2 = A.another_row/2 FROM some_table st CROSS APPLY (SELECT TOP 1 another_row FROM

在SQL Server 2005中,是否可以在update语句的from部分使用交叉应用子句?

请选择正确的位置,Albert。我做了一些测试,发现这确实是可能的。用法与
SELECT
语句中的用法相同。例如:

UPDATE some_table
SET some_row = A.another_row,
    some_row2 = A.another_row/2
FROM some_table st
  CROSS APPLY
    (SELECT TOP 1 another_row FROM another_table at WHERE at.shared_id=st.shared_id) AS A
WHERE ...

上面的查询给了我错误“附近的语法不正确”)。“我花了一点时间才弄明白原因,所以我只想在这里添加解决方案,以防有人遇到它。在cross-apply-select语句之后添加一个“as”似乎可以解决这个问题。在SQL Server中,我不得不将“UPDATE some_table”替换为“UPDATE st”。使用cross-apply的一个好处是可以使用“top”和“sort”;这使您能够按照所需的特定顺序执行更新。