sqlite:别名列名不能包含点"."

Jav*_*oya 3 sql sqlite

(抱歉我的英语不好)

如果您在sqlite数据库上尝试此选择操作:

SELECT列AS'别名1'FROM表;

您获得了预期的列名称:

alias 1
--------
result 1
result 2
Run Code Online (Sandbox Code Playgroud)

但如果你的别名包含一个点"." ...你得到一个错误的列名:

SELECT列AS'alias.1'FROM表;

1
--------
result 1
result 2
Run Code Online (Sandbox Code Playgroud)

(列后面的所有内容都在列名中省略)

哇...这很奇怪......

有人可以帮帮我吗?

非常感谢你

更新:

也许这只是SQLiteStudio(我正在测试我的查询的软件)和QT中的一个错误(他们都不期望别名中的点,但sqlite会这样做)

Kev*_*eno 11

用双引号括起你的别名.

SELECT 'test' AS "testing.this"
Run Code Online (Sandbox Code Playgroud)

输出:

| testing.this |
  test
Run Code Online (Sandbox Code Playgroud)

更新: 双引号用于在SQL中包含标识符,而不是单引号.单引号仅适用于字符串.在这种情况下,您正在尝试确保"testing.this"按原样使用,而不是混淆为testing.this(testing表格this列).

http://www.sqlite.org/faq.html#q24


Ric*_*iwi 5

使用反引号

SELECT column AS `alias.1` FROM table;
Run Code Online (Sandbox Code Playgroud)

或根据其他答案使用双引号(ANSI 标准)

SELECT column AS "alias.1" FROM table;
Run Code Online (Sandbox Code Playgroud)

两者均在 FireFox 的 SQLite Manager 中进行了验证

  • @Javi 鉴于这个新的金块 - 你的解决方法就是全部。很高兴找到它。我会提交错误报告 (2认同)