我在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任何建议 干杯, 披
答案 0 :(得分:2)
为列别名使用其他名称。
select printf('%d',x) as y
from t
order by x desc;
否则,DB无法区分列和您输出的printf
值。