Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengelakkan Ralat Penukaran Apabila Menggabungkan Nombor dan Rentetan dalam T-SQL?

Bagaimana untuk Mengelakkan Ralat Penukaran Apabila Menggabungkan Nombor dan Rentetan dalam T-SQL?

Patricia Arquette
Lepaskan: 2024-12-17 10:32:26
asal
250 orang telah melayarinya

How to Avoid Conversion Errors When Concatenating Numbers and Strings in T-SQL?

Cara Menggabungkan Nombor dan Rentetan untuk Pemformatan Nombor dalam T-SQL

Penerangan Masalah

Dalam T-SQL, tugas biasa adalah untuk menggabungkan nombor dan rentetan untuk memformat medan. Sebagai contoh, anda mungkin perlu memaparkan berat atau dimensi menggunakan unit tertentu. Walau bagaimanapun, apabila menggabungkan integer dan rentetan, ralat penukaran boleh timbul.

Contoh Kod

Pertimbangkan coretan kod berikut yang bertujuan untuk menggabungkan dan memformat nombor untuk berat dan dimensi:

ALTER FUNCTION [dbo].[ActualWeightDIMS]
(
    @ActualWeight int,
    @Actual_Dims_Lenght int,
    @Actual_Dims_Width int,
    @Actual_Dims_Height int
)
RETURNS varchar(50)
AS
BEGIN

DECLARE @ActualWeightDIMS varchar(50);
--Actual Weight
     IF (@ActualWeight is not null) 
          SET @ActualWeightDIMS = @ActualWeight;
--Actual DIMS
     IF (@Actual_Dims_Lenght is not null) AND 
          (@Actual_Dims_Width is not null) AND (@Actual_Dims_Height is not null)
          SET @ActualWeightDIMS= @Actual_Dims_Lenght + 'x' + @Actual_Dims_Width + 'x' + @Actual_Dims_Height;


     RETURN(@ActualWeightDIMS);

END
Salin selepas log masuk

Ralat Ditemui

Apabila menggunakan fungsi, ralat berlaku: "Penukaran gagal apabila menukar nilai varchar 'x' kepada int jenis data." Ini berlaku apabila menggabungkan integer tanpa menukarkannya kepada rentetan secara eksplisit.

Penyelesaian

Untuk menyelesaikan ralat, hantar parameter integer secara eksplisit ke VARCHAR sebelum penggabungan:

SET @ActualWeightDIMS =
     CAST(@Actual_Dims_Lenght AS VARCHAR(16)) + 'x' +
     CAST(@Actual_Dims_Width  AS VARCHAR(16)) + 'x' +
     CAST(@Actual_Dims_Height  AS VARCHAR(16))
Salin selepas log masuk

Ini memastikan bahawa parameter dianggap sebagai rentetan, membenarkan penyatuannya dengan 'x' pembatas.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Ralat Penukaran Apabila Menggabungkan Nombor dan Rentetan dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan