Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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-更新内部表_Sql_Sql Server 2008 - Fatal编程技术网

sql-更新内部表

sql-更新内部表,sql,sql-server-2008,Sql,Sql Server 2008,我需要更新内部表中的一些数据。它是state字段。我的结果集是100行 我想用TX更新前5个 接下来的五个是德 下一个五个是CA 然后再次从TX开始,继续,直到我看完所有100行 谢谢如果您没有生成序列号的方法,那么您的结果集中需要序列号 UPDATE a SET state = b.state FROM data AS a INNER JOIN (VALUES (0, 'TX'), (1, 'DE'), (2, 'CA')) AS b(id, state) ON b.id = ((a.rown

我需要更新内部表中的一些数据。它是state字段。我的结果集是100行

我想用TX更新前5个 接下来的五个是德 下一个五个是CA

然后再次从TX开始,继续,直到我看完所有100行


谢谢

如果您没有生成序列号的方法,那么您的结果集中需要序列号

UPDATE a
SET state = b.state
FROM data AS a
INNER JOIN (VALUES (0, 'TX'), (1, 'DE'), (2, 'CA')) AS b(id, state)
ON b.id = ((a.rownumber - 1) / 5) % 3
尝试使用行号()作为CTE,然后在该行号的更新中使用大小写您所说的“内部表”是什么意思?