【问题标题】:ORA 00933 - "SQL command not properly ended" - Update with order by queryORA 00933 - \"SQL 命令未正确结束\" - 按查询顺序更新
【发布时间】:2023-01-17 23:08:45
【问题描述】:

我想更新一个返回的表

code_langue      libelle
AA               Afar
AE               Avestique
AF               Afrikaans
AFG              Afghan
AK               Akan
...

我想订购 libelle asc。

我的查询是

UPDATE typ_langues
SET libelle = libelle
ORDER BY libelle ASC;

我要这个


code_langue     libelle
OM              Afan , Oromo , Galla
AA              Afar
AFG             Afghan
AF              Afrikaans
AK              Akan
SQ              Albanais
DE              Allemand


但它返回错误 ORA 00933

多谢

【问题讨论】:

  • SQL 记录在 DBMS 中没有顺序:它们就像集合中的点。试图向他们下达命令是没有意义的。
  • 你想达到什么目的?也向我们展示预期的结果。
  • SET libelle = libelle 除非您有触发器或其他东西,否则不会做任何事情。你想要达到什么目的? “我想订购 libelle asc。” - 你不应该担心表中记录的排序顺序。您对记录进行排序检索SELECT 语句末尾使用 ORDER BY 从表中获取。
  • 好的,谢谢,我知道 select 命令,但我认为可以直接在数组中排序(它非常短且固定)以节省我的查询时间。谢谢大家...

标签: sql oracle


【解决方案1】:

不可能将订单应用于表(存储在表空间中)。

相反,您可以通过将 ORDER BY 子句应用于查询来对查询表的行时返回的结果集进行排序:

SELECT *
FROM   typ_langues
ORDER BY libelle ASC;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-09
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多