1

私はテーブルの顧客がいます

 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 

データをテキストファイルに出力すると、データが適切にフォーマットされていない場合、以下のように適切にフォーマットされた方法で結果を取得する必要があります。この方法で取得するように結果を設定するにはどうすればよいですか。

私の出力は次のようになります

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

私のクエリは次のようになりますEXECmaster..xp_cmdshell'bcp"SELECT * from MainDB.dbo.Customer" queryout "F:\ output \ Temp.txt" -c -T -x -t "|"'

4

2 に答える 2

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

ここを参照

編集

したがって、クエリは次のようになります。

SELECT 
    (
       REPLICATE('0',9-LEN(CustomerID))+
       CAST(CustomerID AS VARCHAR(100))
    ) AS CustomerID,
    DOB
FROM 
    MainDB.dbo.Customer
于 2012-04-19T07:33:44.400 に答える
0

CustomerID列を(出力プロセス中に)に変換するvarcharと、先行ゼロが削除されます。

于 2012-04-19T07:21:52.243 に答える