sql - SQLite名称列与预期不同

标签 sql sqlite subquery

我正在运行以下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。实际上,在所有其他数据库上我都尝试过此操作,这正是它们所称的名称吗?

有什么想法吗?

最佳答案

您需要为您选择的列及其别名提供别名。试试这个:

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发布到下一个版本。

关于sql - SQLite名称列与预期不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25131801/

相关文章:

mysql - 优化排序查询

python - 我应该如何为我的 python 应用程序构建一个简单的数据库包?

mysql - SQL join with count 不工作

sql - 为什么我的嵌套 case 语句返回字符集不匹配?

sql - 在 SQL 中对 DATEDIFF 函数的结果进行分组

java - 计算 H2 数据库引擎中表中的条目数

javascript - 本地 Javascript 中的 SQLite 数据库

java - 为什么我的循环只输出最后一个结果?

sql用子选择更新多行

mysql - 调试慢速查询时遇到问题