sqlite选择AS行为

时间:2015-05-01 16:21:04

标签: sqlite select

我在select语句中遇到了AS的一点问题,它有点将我的列类型从INTEGER更改为TEXT。

sqlite> drop table t;
sqlite> create table t (x integer);
sqlite> insert into t values (0);
sqlite> insert into t values (1);
sqlite> insert into t values (2);
sqlite> insert into t values (3);
sqlite> insert into t values (1010);
sqlite>
sqlite> .mode column t
sqlite> .headers on
sqlite> select printf('%d',x) from t order by x desc;
printf('%d',x)
--------------
1010
3
2
1
0

排序正常,现在重命名Col以获得更好的标题。

sqlite> select printf('%d',x) as x from t order by x desc;
x
----------
3
2
1010
1
0

排序不再好,比如做AS使nx成为TEXT?

引用不帮助

sqlite> select printf('%d',x) as 'x' from t order by x desc;
x
----------
3
2
1010
1
0

除非你像AS这样在AS中贴一些东西

sqlite> select printf('%d',x) as 'x ' from t order by x desc;
x
----------
1010
3
2
1
0

这是预期的行为吗?

Thanx任何建议 干杯, 披

1 个答案:

答案 0 :(得分:2)

为列别名使用其他名称。

select printf('%d',x) as y 
from t 
order by x desc;

否则,DB无法区分列和您输出的printf值。