Stored procedures 在存储过程中使用cast或convert函数

Stored procedures 在存储过程中使用cast或convert函数,stored-procedures,Stored Procedures,为什么我们必须在第二个和第三个selecct语句中使用cast或cnvert函数,我们通过将其转换为varchar实现了什么,varchar数据类型在其中究竟做了什么 DECLARE @mybin1 binary(5), @mybin2 binary(5) SET @mybin1 = 0xFF SET @mybin2 = 0xA5 -- No CONVERT or CAST function is necessary because this example -- concatenates t

为什么我们必须在第二个和第三个selecct语句中使用cast或cnvert函数,我们通过将其转换为varchar实现了什么,varchar数据类型在其中究竟做了什么

DECLARE @mybin1 binary(5), @mybin2 binary(5)
SET @mybin1 = 0xFF
SET @mybin2 = 0xA5
-- No CONVERT or CAST function is necessary because this example 
-- concatenates two binary strings.
SELECT @mybin1 + @mybin2
-- A CONVERT or CAST function is necessary because this example
-- concatenates two binary strings plus a space.
SELECT CONVERT(varchar(5), @mybin1) + ' ' 
    + CONVERT(varchar(5), @mybin2)
-- Here is the same conversion using CAST
SELECT CAST(@mybin1 AS varchar(5)) + ' ' 
    + CAST(@mybin2 AS varchar(5))

因为在select语句中,您将变量与空格(“”)连接起来,空格是varchar的一种类型,您需要将它们转换为所需的结果


从某种意义上讲,它可能会给您一个错误,因为您的数据类型不同/不兼容。

因为在select语句中,您将变量与空格(“”)连接起来,空格是varchar的一种类型,您需要强制转换它们以获得所需的结果


从某种意义上说,它可能会给您一个错误,因为您的数据类型不同/不兼容。

由于它们是不同的数据类型,您不能直接连接二进制数据和文本字符串(varchar),这就是为什么您需要强制转换或转换的原因。

因为它们是不同的数据类型,不能直接连接二进制数据和文本字符串(varchar),这就是为什么需要强制转换或转换。

将其强制转换为varchar将数据从字节序列转换为字符文本。正如Flip所说,你不能直接把不同的类型联系起来。通常二进制字符串用于图像、视频、流等,其中as varchar通常是字符串数据,如文本文件中的内容。

将其转换为varchar将数据从字节序列转换为字符文本。正如Flip所说,你不能直接把不同的类型联系起来。通常二进制字符串用于图像、视频、流等,其中as varchar通常是字符串数据,如文本文件中的数据。

但是使用varchar时,它们转换为什么类型的数据类型,以及何时使用varchar或任何其他数据类型但是使用varchar时,它们转换为什么类型的数据类型,什么时候使用varchar或任何其他数据类型但是我们如何决定应该转换什么类型,我们总是只转换为varchar数据类型…或者在上面的转换中,我也可以将该空间转换为二进制类型..?您可以根据应用程序的需要决定转换为什么类型。关键的一点是你不能把binary和varchar连接在一起,因此它们必须是相同的类型。但是我们如何决定我们应该转换什么类型,我们总是只转换为varchar数据类型…或者在上面的转换中,我也可以将该空间转换为二进制类型..?您可以根据应用程序的需要决定将其转换为什么类型。关键的一点是,您不能将binary和varchar连接在一起,因此它们必须是相同的类型。