【问题标题】:SYNTAX CREATE VIEW SQL SERVER语法 创建视图 SQL 服务器
【发布时间】:2014-05-26 23:27:16
【问题描述】:

我在 sql server 中创建视图并抛出错误:

USE BaseDeDatos;

CREATE VIEW TEMAS_USUARIO
AS 
SELECT TOP 5 t.id_userTopic, t.nameTopic, u.id_user, u.name
FROM Topic t, Users u
WHERE t.id_userTopic = u.id_group
ORDER BY t.id_topic DESC;

语法有什么问题? 错误 ---> 创建视图 TEMAS_USUARIO 不能使用 LIMIT

【问题讨论】:

  • 你想用 LIMIT 5 获得什么?

标签: sql-server-2008 syntax views


【解决方案1】:
USE BaseDeDatos
GO
CREATE VIEW TEMAS_USUARIO
AS 
SELECT TOP 5 t.id_userTopic, t.nameTopic, u.id_user, u.name
FROM Topic t, Users u
WHERE t.id_userTopic = u.id_group
ORDER BY t.id_topic DESC;

SQL SELECT TOP 子句:

SQL SERVER / MS ACCESS 语法

SELECT TOP number|percent column_name(s)
FROM table_name;

MySQL 语法

SELECT column_name(s)
FROM table_name
LIMIT number;

SQL SELECT TOP 子句解释:Here

【讨论】:

  • ok LIMIT 不起作用,但仍然在 CREATE VIEW TEMAS_USUARIO 上抛出错误:语法错误:CREATE VIEW 必须是批处理中的唯一语句
  • 表格在 BaseDeDatos 中,我无法删除该行
  • 如果您位于“BaseDeDatos”数据库中(执行:USE BaseDeDatos),将在那里创建视图。
【解决方案2】:

CREATE VIEW 的语法命令是这样的:

视图定义中的 SELECT 子句不能包含以下内容:

  • 一个 ORDER BY 子句,除非 SELECT 语句的选择列表中还有一个 TOP 子句

重要提示 重要提示

ORDER BY 子句仅用于确定视图定义中的 TOP 或 OFFSET 子句返回的行。 ORDER BY 子句不保证查询视图时的有序结果,除非查询本身也指定了 ORDER BY。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多