1

実行しようとすると、nvarchar 値 '0003/' をデータ型 int に変換するときに変換に失敗しましたというクエリを取得しました。

クエリは

SELECT

name,
date,
CAST(('0' + Location + '/' + ID) AS nvarchar(50)) AS [UniqNumber]

FROM
Table

これにより、nvarchar 値 '0003/' をデータ型 int に変換するときに変換に失敗しましたが返されます。場所と ID はどちらも int です。

4

2 に答える 2

2

入力をキャストする必要があります。

'0' + CAST(Location AS VARCHAR(20)) + '/' + CAST(ID AS VARCHAR(20))

int文字列データ型よりもデータ型の優先順位が高くなります。これを行うstring + intと、整数を文字列にキャストして連結するのではなく、文字列を整数にキャストして追加しようとします。

于 2012-12-03T11:47:15.207 に答える
0

nvarcharに変換したいのでこれを試してくださいint

CAST(REPLACE(Location,'/',0) AS nvarchar(50)) + CAST(ID as nvarchar(50)) AS [UniqNumber]

出力:

0030
于 2012-12-03T11:56:35.220 に答える