concat 使用空白 space 作为分隔符标记问题而不是空白 space
concat using a blank space as separator marks questions instead of blank space
这个查询
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)
显示这个
我不明白为什么“ ”被翻译成“?”
我的想法好吗?
问候
您在示例中 post 编辑的空格是 CHAR(63) 的非真实空格:CHAR(32)。
我copy/pasted的空格直接来自你的post。请注意:SELECT ASCII(' ')
Retutns 63. 我像这样将空格复制到 CONCAT 中:SELECT CONCAT('a', ' ' , 'a', ' ' , 'x');
returns: 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');
这个查询
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)
显示这个
我不明白为什么“ ”被翻译成“?”
我的想法好吗?
问候
您在示例中 post 编辑的空格是 CHAR(63) 的非真实空格:CHAR(32)。
我copy/pasted的空格直接来自你的post。请注意:SELECT ASCII(' ')
Retutns 63. 我像这样将空格复制到 CONCAT 中:SELECT CONCAT('a', ' ' , 'a', ' ' , 'x');
returns: 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');