Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть эта синтаксическая ошибка, как показано ниже: Код:

select '99999' as Code, N'Tat ca' as Name, N'ALL - Tat ca' as Display_Name ,'' as AreaName UNION select CONVERT(Code,VARCHAR) as Code,Name,  CONVERT(Code,VARCHAR)+'-'+Name as Display_Name ,AreaName FROM devices;

Ошибка:

Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверить руководство, которое соответствует вашей версии сервера MySQL для права синтаксис для использования рядом с 'VARCHAR) как код, имя, CONVERT (Код, VARCHAR) + '-' + Имя как Display_Name, AreaName 'в строке 3

Я не знаю, как исправить эту ошибку. С нетерпением ждем вашей помощи. Большое вам спасибо!

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Проблема только в части преобразования пользователя CHAR

 select '99999' as Code, N'Tat ca' as Name, N'ALL - Tat ca' as Display_Name ,'' as AreaName
FROM <TABLE_NAME> UNION select CONVERT(Code,CHAR) as Code,Name, CONVERT(Code,CHAR)+'-'+Name as Display_Name ,AreaName FROM devices
0 голосов
/ 05 сентября 2018

Как видите здесь вы не можете конвертировать в VARCHAR. Изменить на CHAR.

select '99999' as Code, N'Tat ca' as Name, N'ALL - Tat ca' as Display_Name ,'' as AreaName FROM DUAL;
UNION 
select CONVERT(Code,CHAR) as Code,Name,  CONVERT(Code,CHAR)+'-'+Name as Display_Name ,AreaName FROM devices;
...