2012-04-19 41 views
1

我有一个表的客户数据以文本文件从选择查询输出wqell格式化方式

CustomerID    DOB 
1      11/12/1983 
2      12/12/1983 
3      12/12/1985 
34334     23/12/1986 
1232     15/12/1983 
232     13/12/1987 
343     24/12/1987 
1342     22/12/1988 
121111     02/12/1989 
243233233    12/12/1983 

当我的数据到一个文本文件中的数据输出是没有得到很好格式化, 我neeed得到结果在下面如何设置的结果,如良好的格式化的方式来获得这样

我放出来应该是这样的

CustomerID      DOB 
000000001      11/12/1983 
000000002      12/12/1983 
000000003      12/12/1985 
000034334      23/12/1986 
0000/12/1983 
000000232      13/12/1987 
000000343      24/12/1987 
000001342      22/12/1988 
000121111      02/12/1989 
243233233      12/12/1983 

我的查询看起来像这样 EXEC master..xp_cmdshell'bcp“SELECT * from MainDB.dbo.Customer”queryout“F:\ output \ Temp.txt”-c -T -x -t“|”'

回答

2

您可以使用REPLICATE。这将在CustomerID的开头添加零。就像这样:

DECLARE @tbl TABLE(CustomerID INT) 

INSERT INTO @tbl 
VALUES 
    (1),(2),(34334) 

SELECT 
    REPLICATE('0',9-LEN(CustomerID))+CAST(CustomerID AS VARCHAR(100)) 
FROM 
    @tbl AS tbl 

参考here

编辑

所以您的查询就会是这个样子:

SELECT 
    (
     REPLICATE('0',9-LEN(CustomerID))+ 
     CAST(CustomerID AS VARCHAR(100)) 
    ) AS CustomerID, 
    DOB 
FROM 
    MainDB.dbo.Customer 
0

CustomerID列转换为一个varchar(在输出过程中),它应该删除前导零。

+0

没有我需要添加零客户ID – happysmile 2012-04-19 07:25:44