SQL Concat несколько столбцов + "|" для присоединения - PullRequest
1 голос
/ 11 июня 2019

Попытка объединить столбцы и каналы (|) для создания первого левого внешнего соединения.

dbo.[SFI Barcode Entry].MapValue = the concatenated values of 3 columns with pipes in between

Мой запрос:

SELECT dbo.[U1$Job Task].[Job No_] AS Job, 
       dbo.[U1$Job Task].[Job Task No_] AS [Cost Code], 
       dbo.[U1$Job Task].Description, 
       dbo.[SFI Barcode Entry].MapID
FROM   dbo.[U1$Job Task] 
LEFT OUTER JOIN dbo.[SFI Barcode Entry] ON CONCAT(dbo.[U1$Job Task].[Job No_], "|", dbo.[U1$Job Task].[Job Task No_], "|", dbo.[U1$Job Task].[Job Task Type]) = dbo.[SFI Barcode Entry].MapValue 
LEFT OUTER JOIN dbo.U1$Job ON dbo.[U1$Job Task].[Job No_] = dbo.U1$Job.No_
WHERE  (dbo.U1$Job.Status = 2)

Сообщения об ошибках: Msg 207, Level16, состояние 1, строка 3Неверное имя столбца '|'.Сообщение 207, Уровень 16, Состояние 1, Строка 3Неверное имя столбца '|'.

В SSMS 2017 при создании представления он пытается добавить команду функции и меняет "|"в [|].Мне нужен запрос для запуска в представлении в конце концов.

1 Ответ

2 голосов
/ 11 июня 2019

Как правило, "" используются для имен объектов. Ваш запрос должен быть таким, как показано ниже (замените «|» на «|»):

SELECT dbo.[U1$Job Task].[Job No_] AS Job, 
       dbo.[U1$Job Task].[Job Task No_] AS [Cost Code], 
       dbo.[U1$Job Task].Description, 
       dbo.[SFI Barcode Entry].MapID
FROM   dbo.[U1$Job Task] LEFT OUTER JOIN dbo.[SFI Barcode Entry] 
ON concat( concat(concat (dbo.[U1$Job Task].[Job No_], '|'), concat (dbo.[U1$Job Task].[Job Task No_], '|')), dbo.[U1$Job Task].[Job Task Type])= dbo.[SFI Barcode Entry].MapValue 
LEFT OUTER JOIN dbo.U1$Job 
ON dbo.[U1$Job Task].[Job No_] = dbo.U1$Job.No_
WHERE (dbo.U1$Job.Status = 2)
...