- 28
- 0
如下T-SQL
update tablename set 日期=e.日期,[00:00]=e.[00:00],[01:00]=e.[01:00],[02:00]=e.[02:00],[03:00]=e.[03:00],[04:00]=e.[04:00],[05:00]=e.[05:00],[06:00]=e.[06:00],[07:00]=e.[07:00],[08:00]=e.[08:00],[09:00]=e.[09:00],[10:00]=e.[10:00],[11:00]=e.[11:00],
[12:00]=e.[12:00],[13:00]=e.[13:00],[14:00]=e.[14:00],[15:00]=e.[15:00],[16:00]=e.[16:00],[17:00]=e.[17:00],[18:00]=e.[18:00],[19:00]=e.[19:00],[20:00]=e.[20:00],[21:00]=e.[21:00],[22:00]=e.[22:00],[23:00]=e.[23:00]
from (select * from OPENDATASOURCE(
'Microsoft.Ace.OleDb.12.0',
'Extended Properties="Excel 12.0;HDR=YES;IMEX=1";Data Source="C:..."'
)...[sheet1$] ) e where tablename.日期=e.日期
小白向大神们请教,能有更优化的写法,谢谢!
- 共 0 条
- 全部回答
-
想起曾經的思念 普通会员 1楼
在SQL Server中,更新语句的简化方法通常涉及使用更新子句和一些预处理语句。以下是一些可能的简化版本:
- 使用 WITH 子句简化子句:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE condition;在这个简化版本中,
WITH子句包含一个UPDATE子句,其中包含要更新的列和新值。WHERE子句用于筛选要更新的行。SET子句用于设置新值,而column1到columnN是要更新的列的名称。- 使用 IN 子句简化 IN 子句:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE column1 IN ('new_value1', 'new_value2', 'new_value3');在这个简化版本中,
IN子句用于替换WHERE子句中的column1列。它接受一个值列表,每个值代表一个列的名称。- 使用 EXISTS 子句简化 EXISTS 子句:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE EXISTS (SELECT 1 FROM other_table WHERE column1 = 'new_value1');在这个简化版本中,
EXISTS子句用于替换WHERE子句中的column1列。它接受一个表达式(一个子句),子句用于检查column1是否存在于other_table中。如果column1存在,EXISTS子句返回1,否则返回0。- 使用 DISTINCT 子句简化 DISTINCT 子句:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE column1 NOT IN (SELECT DISTINCT column1 FROM other_table);在这个简化版本中,
NOT IN子句用于替换WHERE子句中的column1列。它接受一个表达式,子句用于检查column1是否在other_table中的column1列中不存在且不相同。如果column1不存在于other_table中的column1列中,NOT IN子句返回1,否则返回0。- 使用 ROW_NUMBER() 函数简化 ROW_NUMBER() 函数:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE column1 IN ('new_value1', 'new_value2', 'new_value3') AND column1 NOT IN (SELECT ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2 DESC) FROM other_table);在这个简化版本中,
ROW_NUMBER()函数用于为column1列提供一个递增的标识,然后在WHERE子句中检查这个标识是否在other_table中的column1列中不存在且不相同。ORDER BY column2 DESC用于根据column2列对column1列进行降序排序,以便查找的行按照column2列的值从高到低排序。NOT IN子句用于检查column1列的值在other_table中的column1列中不存在且不相同。这些只是 SQL Server 更新语句简化的一些常见方法,实际上,还有许多其他方法可以使用,根据具体的需求和数据库设计来选择合适的方法。
-
孤ジ离人群 普通会员 2楼
在SQL Server中,更新语句的简化方法通常涉及使用更新子句和一些预处理语句。以下是一些可能的简化版本:
- 使用 WITH 子句简化子句:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE condition;在这个简化版本中,
WITH子句包含一个UPDATE子句,其中包含要更新的列和新值。WHERE子句用于筛选要更新的行。SET子句用于设置新值,而column1到columnN是要更新的列的名称。- 使用 IN 子句简化 IN 子句:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE column1 IN ('new_value1', 'new_value2', 'new_value3');在这个简化版本中,
IN子句用于替换WHERE子句中的column1列。它接受一个值列表,每个值代表一个列的名称。- 使用 EXISTS 子句简化 EXISTS 子句:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE EXISTS (SELECT 1 FROM other_table WHERE column1 = 'new_value1');在这个简化版本中,
EXISTS子句用于替换WHERE子句中的column1列。它接受一个表达式(一个子句),子句用于检查column1是否存在于other_table中。如果column1存在,EXISTS子句返回1,否则返回0。- 使用 DISTINCT 子句简化 DISTINCT 子句:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE column1 NOT IN (SELECT DISTINCT column1 FROM other_table);在这个简化版本中,
NOT IN子句用于替换WHERE子句中的column1列。它接受一个表达式,子句用于检查column1是否在other_table中的column1列中不存在且不相同。如果column1不存在于other_table中的column1列中,NOT IN子句返回1,否则返回0。- 使用 ROW_NUMBER() 函数简化 ROW_NUMBER() 函数:
sql UPDATE table_name SET column1 = 'new_value1', column2 = 'new_value2', ... columnN = 'new_valueN' WHERE column1 IN ('new_value1', 'new_value2', 'new_value3') AND column1 NOT IN (SELECT ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2 DESC) FROM other_table);在这个简化版本中,
ROW_NUMBER()函数用于为column1列提供一个递增的标识,然后在WHERE子句中检查这个标识是否在other_table中的column1列中不存在且不相同。ORDER BY column2 DESC用于根据column2列对column1列进行降序排序,以便查找的行按照column2列的值从高到低排序。NOT IN子句用于检查column1列的值在other_table中的column1列中不存在且不相同。这些只是 SQL Server 更新语句简化的一些常见方法,实际上,还有许多其他方法可以使用,根据具体的需求和数据库设计来选择合适的方法。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

