Tsql concat使用空格作为分隔符标记问题,而不是空格
这个问题Tsql concat使用空格作为分隔符标记问题,而不是空格,tsql,concat,Tsql,Concat,这个问题 SELECT Empleados.U_Sociedad as Sociedad, Empleados.empID AS empId, CONCAT(Empleados.firstName , ' ' , Empleados.middleName , ' ' , Empleados.lastName) as Nombre, sum( case when durtype = 'm' then
SELECT Empleados.U_Sociedad as Sociedad,
Empleados.empID AS empId,
CONCAT(Empleados.firstName , ' ' , Empleados.middleName , ' ' , Empleados.lastName) as Nombre,
sum(
case
when durtype = 'm'
then duration/ 60
else duration
end
) as Realizado ,
0 as Planificado,
'Horas' as Concepto
FROM OHEM Empleados
JOIN OUSR Usuarios ON Empleados.U_CODEMPL = Usuarios.USER_CODE
JOIN OCLG Horas ON Usuarios.INTERNAL_K = Horas.AttendUser
WHERE(Horas.U_Fase ='w0000005')
group by U_Sociedad, empID ,CONCAT(Empleados.firstName , ' ' , Empleados.middleName , ' ' , Empleados.lastName)
显示了这一点
我不明白为什么“被翻译成”
艾米:好吗
关于您在示例中发布的空格是CHAR(63)的非真实空格:CHAR(32) 我直接从你的帖子中复制/粘贴了空格。请注意:
选择ASCII(' ')代码>
Retutns 63.我将空格复制到CONCAT中,如下所示:SELECT CONCAT('a'), ' ' , '",, ' ' , 'x');
返回值:a?a?x
可以显式指定CHAR(32)
空格,如下所示:
SELECT CONCAT('a', CHAR(32) , 'b', CHAR(32), 'c');
或者,为了避免反复键入CHAR(32),可以执行以下操作:
SELECT CONCAT('a',Sp,'b',Sp, 'c')
FROM (VALUES(CHAR(32))) AS s(Sp);
或者,如果您使用SQL Server 2017+您可以像这样使用CONCAT_WS:
SELECT CONCAT_WS(CHAR(32),'a','b','c');
您在示例中发布的空间是CHAR(63)的非实空间:CHAR(32)
我直接从您的帖子中复制/粘贴空格。请注意:SELECT ASCII('s ')代码>
Retutns 63.我将空格复制到CONCAT中,如下所示:SELECT CONCAT('a'), ' ' , '",, ' ' , 'x');
返回值:a?a?x
可以显式指定CHAR(32)
空格,如下所示:
SELECT CONCAT('a', CHAR(32) , 'b', CHAR(32), 'c');
或者,为了避免反复键入CHAR(32),可以执行以下操作:
SELECT CONCAT('a',Sp,'b',Sp, 'c')
FROM (VALUES(CHAR(32))) AS s(Sp);
或者,如果您使用SQL Server 2017+您可以像这样使用CONCAT_WS:
SELECT CONCAT_WS(CHAR(32),'a','b','c');
这是来自SQL Server Management Studio的吗?通常情况下,这是因为您的客户端不知道如何渲染角色,而角色会被替换为其他默认角色。这是来自SQL Server Management Studio的吗?通常情况下,这是因为您的客户端不知道如何渲染角色,而角色会被替换使用其他默认字符。