&
- это двоичный файл и оператор, а не оператор объединения строк.
Если установлено CONCAT_NULL_YIELDS_NULL , можно использовать +
для объединения значений с косой чертой и concat()
для построения общей строки.Как и в случае +
, конкатенация получает NULL
, если один операнд имеет значение null, слеш в некотором роде исключается в течение NULL
s.concat()
однако заменяет NULL
s пустой строкой, поэтому общий результат не будет NULL
, если есть NULL
значений.
Если значения являются целыми числами, вам нужно преобразовать их ввставьте их в строку перед тем, как использовать их в +
, так как в противном случае +
интерпретируется как арифметический плюс и приводит к тому, что движок пытается преобразовать '/'
в число, что, конечно, не получается.
SELECT id,
concat(convert(varchar(max), items_uom.innercase) + '/',
convert(varchar(max), items_uom.percase) + '/',
convert(varchar(max), items_uom.perpack)
FROM items_uom;