1

こんにちは、電話番号を含むいくつかの列のデータを csv ファイルに出力する SQL スクリプトがあります。スクリプトはすべて正常に動作しますが、先頭のゼロは電話番号から取り除かれます。これで、電話番号を含む csv を Excel で開いたときに、電話番号から先頭のゼロが削除される理由がすべてわかりました。

少し苦労しているのは、電話番号を二重引用符で囲んで、開いたときにテキストとして解釈されるようにする SQL スクリプトです。以下の私のSQLを参照してください:

SET @query ='
SELECT
    ''MobilePhoneNumber'' AS MobilePhoneNumber
    ,''RequestNumber'' AS RequestNumber
    ,''RequestDate'' AS RequestDate
    ,''RequestType'' AS RequestType
    ,''Status'' AS Status
UNION ALL
SELECT 
    [MobilePhoneNumber] --I Want to get this column in the csv as EG "01234123456"
    ,[RequestNumber]
    ,CONVERT(VARCHAR,[RequestDate],120)
    ,[RequestType]
    ,[Status]
FROM [Mobiles].[dbo].[Requests]
WHERE [RequestType] = ''Cease''
    AND DATEDIFF(mm,Requestdate , GETDATE())=1;'
4

2 に答える 2

1

これを試してください:

'...
SELECT 
CHAR(34) + [MobilePhoneNumber] + CHAR(34)
...'

または

'...
SELECT 
''"'' + [MobilePhoneNumber] + ''"''
...'
于 2013-07-05T15:35:21.740 に答える
0

@KekuSemau からの提案のおかげで、これが最終的に他の人の利益のための私の解決策です。

SET @query ='
SELECT
    ''MobilePhoneNumber'' AS MobilePhoneNumber
    ,''RequestNumber'' AS RequestNumber
    ,''RequestDate'' AS RequestDate
    ,''RequestType'' AS RequestType
    ,''Status'' AS Status
UNION ALL
SELECT 
    CHAR(39) +[MobilePhoneNumber] -- < I simply added the CHAR(39)
    ,[RequestNumber]
    ,CONVERT(VARCHAR,[RequestDate],120)
    ,[RequestType]
    ,[Status]
FROM [Mobiles].[dbo].[Requests]
WHERE [RequestType] = ''Cease''
    AND DATEDIFF(mm,Requestdate , GETDATE())=1;'
于 2013-07-08T09:00:27.860 に答える