Cognos CAST в случае - PullRequest
       13

Cognos CAST в случае

0 голосов
/ 11 декабря 2018

Я думал, что собираюсь сделать что-то простое, но это дает мне ошибки.Я пытаюсь объединить наш заказ # с суффиксом заказа, который я могу сделать без проблем, используя оператор CAST.Мне нужен результат, чтобы быть порядок # - ## (123456-01).Проблема возникает, когда существует более девяти выпусков, и я получаю 123456-010, так как я добавил '-0' в свой комбайн.Я пробовал это, но это дает мне ошибки разбора:

CASE WHEN [Order Suffix] > 9
THEN CAST (([Order #],varchar(7)) + '-' + CAST ([Order Suffix],varchar(2)) 
ELSE CAST (([Order #],varchar(7)) + '-0' + CAST ([Order Suffix],varchar(2))
END

Что я делаю не так и есть ли лучший способ сделать это?Заранее спасибо.

1 Ответ

0 голосов
/ 11 декабря 2018

CAST() использует синтаксис as <type> в основном все базы данных (это стандартная функция.

Возможно, это будет делать то, что вы хотите:

 (CAST(([Order #] as varchar(7)) +
  (CASE WHEN [Order Suffix] <= 9 THEN '-0' ELSE '-' END) +
  CAST([Order Suffix] as varchar(2))
 )

Обратите внимание, что это факторыобщий код в двух выражениях. Я думаю, что это помогает с ремонтопригодностью.

...