【问题标题】:How to delete rows by calling its row number如何通过调用行号来删除行
【发布时间】:2022-03-05 09:46:44
【问题描述】:

我将这些数据存储在 SQL Server 中

如何通过调用左侧的行号 (1,2,3) 删除前三行?

【问题讨论】:

  • 根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。

标签: sql sql-server sql-delete


【解决方案1】:

你不能。该行号是无形的,只不过是返回结果的顺序。SQL 不保证数据的顺序,所以没有规则说如果你运行相同的查询 20 次,你会得到相同的结果每次在 1,2 和 3 时。这并不是说您不会得到相同的结果,只是无法保证。您需要使用作为表定义的一部分实际存在的列进行删除,例如 F1、F2 等...

正如其他人在 cmets 中建议的那样,在将数据导入 SQL Sever 之前尝试清理数据。你有几个选择。

  1. 在导入之前从文件中删除行。
  2. 正确配置导入向导以排除这些行。

有用的链接

https://docs.microsoft.com/en-us/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-ver15

【讨论】:

  • 哦,我明白了,我坚持这个,我在其他网站上找不到答案,所以这就是原因。所以就像我需要先通过删除前三行来修改它,然后再将其导入数据库。谢谢你。
  • 没有列可以用来删除要删除的行吗?
  • 前三行中有什么突出的地方让您想删除它们?
  • @ArmandoBridena - 是的,在导入之前修改电子表格。此外,如果您使用的是 SSMS 导入向导,请选中标题为“第一行具有列名”的框,以便您的表具有名为“CountryName,CountryCode,...”而不是“F1,F2,...”的列" 见docs.microsoft.com/en-us/sql/relational-databases/import-export/…
  • 对,但就数据库中的内容而言。例如 WHERE F1 IN ('Data Source','Last Updated Date') OR F1 IS NULL。这看起来像您在这里寻找的东西。
猜你喜欢
  • 1970-01-01
  • 2021-04-15
  • 2011-08-21
  • 1970-01-01
  • 2016-04-12
  • 2021-12-18
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
相关资源
最近更新 更多