【问题标题】:SQLite names columns differently than expectedSQLite 对列的命名与预期不同
【发布时间】:2014-08-05 05:34:02
【问题描述】:

我正在运行以下 SQL 语句

SELECT [i].[ByteColumn], [r].[ReferenceDate] 
FROM [Reference] [r] INNER JOIN (
SELECT  [Import].[ImportID], [Import].[ByteColumn] 
FROM [Import]) AS i  
ON ([r].[ImportID] = [i].[ImportID])
ORDER BY [i].[ByteColumn] ASC

数据按预期返回,但列名是 i 和 r?我希望它们是 ByteColumn 和 ReferenceDate。事实上,在我尝试过的所有其他数据库上,这正是它们的名称?

有什么想法吗?

【问题讨论】:

    标签: sql sqlite subquery


    【解决方案1】:

    您需要为您选择的列提供一个别名并完成。试试这个:

    SELECT [i].[ByteColumn] as [ByteColumn], [r].[ReferenceDate] as [ReferenceDate]
    FROM [Reference] [r] INNER JOIN (
    SELECT  [Import].[ImportID], [Import].[ByteColumn] 
    FROM [Import]) AS i  
    ON ([r].[ImportID] = [i].[ImportID])
    ORDER BY [i].[ByteColumn] ASC
    

    来自文档:

    SQLite 没有(目前)对列名做出任何承诺 省略 AS 子句的查询。如果使用 AS 子句,则 列名保证为 AS 右侧的标签。如果你 省略 AS 子句,则列名可能会从 1 更改 SQLite 发布到下一个。

    【讨论】:

      猜你喜欢
      • 2021-07-10
      • 1970-01-01
      • 2020-06-09
      • 2021-08-04
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      相关资源
      最近更新 更多