2011-06-12 187 views
1

我有一个我希望转储到outfile的sql表。问题是,有些结果是1位,即1或2,而有些则是长的数字,即1.2323523如何缩进mysql的结果SELECT INTO OUTFILE

这将导致OUTFILE看起来可怕,像这样

1 a bbb 
1.21321342 aaaa bbbbb 

意思,每列的开始不对齐。有没有人知道是否有一种方法在SQL来照顾呢?

谢谢!

回答

1

投柱为char(N),例如

select cast(my_numeric_column as char(10)) as my_numeric_column 

这将是输出固定宽度列数据。然而他们将被证明是正确的。

一个更好的解决办法是给予同样的小数位数的所有号码,1是输出为“1.000000”等,这是如何做到这一点:

select cast(my_numeric_column as decimal(16,8)) as my_numeric_column 

之所以选择精度(的地方 - 这里8)你想要的。

所有列都可以用这种方式处理以产生一个很好的制表格式。

+0

有没有办法让这个工作在整个表中,而不是每行只有一行? – 2011-06-12 08:54:09

1

使用这样u得到一个CSV文件,所以在Excel中它的外观漂亮

SELECT * 
FROM mytable 
INTO OUTFILE '/tmp/table.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'