首页 > 解决方案 > Sybase 查询:如何对提取进行排序(按格式正确的列)

问题描述

我在脚本中构建了一个Sybase 查询语句(使用 isql 命令/行),代码如下:

我的脚本包含:

isql -U databasename_dba -P password  <<EOF!
select  customerid, notional, counterparty2 from table_1  inner join  table_2
on id = id2 
go
quit
EOF!

我得到这个:

我的输出

想要的输出是:

期望的输出

认为仅提取数据(不包括标题)可能会修复输出。我在我的代码中添加-b

isql -U databasename_dba -P password  -b <<EOF!

但输出变化不大 在此处输入图像描述

提前致谢

标签: unixoutputsybasecolumnheader

解决方案


首先你可以传入 -w 参数来给出行的宽度,这样你就不会让它跨行重叠(例如 -w2000)

isql 工具将根据实际表列的宽度返回列宽,因此,例如,如果您将其定义为数字 18 但仅使用 12 位数字,您仍将在输出中获得 18 个字符。您可以使用 artrim(customerid)取决于数据类型,也可以使用convert(varchar(12), customerid). 我怀疑有人可能将其定义为 50 个字符或更多。您可以根据需要对每列重复此操作。

您也可以考虑使用 sp_autoformat 看看这是否有帮助 - http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36273.1570/html/sprocs/BABHCBIG.htm


推荐阅读