我正在运行以下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/