在SQL中将两个整数和结果作为字符串连接起来

use*_*888 8 sql sql-server sql-server-2008

在表中,2个字段ID为int,Number为小int,我想连接两个字段并显示为字符串

eg: ID = 101 and Number = 9 
output : 101.9 
Run Code Online (Sandbox Code Playgroud)

要在ID和数字之间添加点吗?如何在SQL中查询?

Sac*_*hin 31

您可以将整数字段CAST到varchar,然后根据需要连接它们.

DECLARE @ID INT 
DECLARE @Number INT 

SET @ID = 101 
SET @Number = 9  

SELECT CAST(@ID AS VARCHAR(10) ) +'.'+ CAST(@Number AS VARCHAR(10) ) 
Run Code Online (Sandbox Code Playgroud)


Kri*_*ten 10

在 SQL 2012(及更高版本)中,我现在发现使用 CONCAT 更容易(性能更好

SELECT CONCAT(@ID, '.', @Number) 
Run Code Online (Sandbox Code Playgroud)

任何 NULL 元素都被转换为空字符串,防止 NULL 传播,这样就不必做更复杂的事情:

SELECT ISNULL(CAST(@ID AS VARCHAR(10) ), '') +'.'+ ISNULL(CAST(@Number AS VARCHAR(10) ) , '')
Run Code Online (Sandbox Code Playgroud)