他の列に基づいて列を作成しようとしていますが、エラーが発生し続けます:
「varcharからfloatへの変換エラー」連結ではなく追加しようとしていると思います。
私のステートメントは次のようになります。
select column1 + ' ' + column2 + ' ' as ColumnDesired
何か案は?
他の列に基づいて列を作成しようとしていますが、エラーが発生し続けます:
「varcharからfloatへの変換エラー」連結ではなく追加しようとしていると思います。
私のステートメントは次のようになります。
select column1 + ' ' + column2 + ' ' as ColumnDesired
何か案は?
これらの列のいずれかが数値の場合、データ型の優先順位のために追加しようとしています。たとえば、すべての式を最も前例のあるデータ型(この場合は)に変換しようとするため、数学的SELECT 4 + 'cow'
に4
追加しようとしています。cow
INT
したがって、を使用CONVERT
して、すべての数値およびその他の非文字列データ型列が明示的に文字列として扱われるようにします。これらの列には32文字で十分だと思いますが、32文字を超える列を誤って切り捨てないように注意してください。
SELECT ColumnDesired = CONVERT(VARCHAR(32), column1) + CONVERT(VARCHAR(32), column2)
FROM ...
NULL
また、 sに対処する必要があるかもしれません
SELECT ColumnDesired = COALESCE(CONVERT(VARCHAR(32), column1), '')
+ COALESCE(CONVERT(VARCHAR(32), column2), '')
FROM ...
列を連結しようとしている場合は、数値の列を変換する必要がある場合があります。
select cast(column1 as varchar(50)) + ' ' + column2 + ' ' as ColumnDesired
また
select column1 + ' ' + cast(column2 as varchar(50)) + ' ' as ColumnDesired
列の1つは数値です。CONVERT()を使用してください。
結論として、暗黙の変換に依存することはなく、CONVERT()はすべて非(N)CHAR /(N)VARCHAR値です。