如何在括号中设置强制转换值?

How to set a cast value in a bracket?

我正在尝试投射两个数据。我想要括号内的演员表数据。我试过这样:

SELECT EmpCode,
       (CAST(Name AS varchar(50))+' '+CAST(EmpCode AS varchar(50))) AS Name
from ShiftAllocation  

它给出带有 Name 和 EmpCode 的输出,如

Tom Varghees 12345

但是我想要这个 12345 (EmpCode) 在括号中。 预期输出为

Tom Varghees [12345]

我应该在示例查询中做哪些更改

您可以使用 QUOTENAME.

SELECT EmpCode, 
       (CAST(Name AS VARCHAR(50)) + ' ' + 
       QUOTENAME(CAST(EmpCode AS VARCHAR(50)))) AS Name 
FROM   ShiftAllocation  

如果你没有能力使用QUOTENAME你可以进入以下:

SELECT EmpCode, 
       (CAST(Name AS VARCHAR(50)) + 
       ' [' + CAST(EmpCode AS VARCHAR(50)) + ']') AS Name 
FROM   ShiftAllocation  

只需添加括号,无需火箭科学:

SELECT 'Peter'+' ['+ '12345'+']' AS Name 

在您的查询中:

SELECT EmpCode,(CAST(Name AS varchar(50))+' ['+CAST(EmpCode AS varchar(50)) +']') AS Name from ShiftAllocation