Преобразовать строку в десятичную в кубе - PullRequest
0 голосов
/ 12 августа 2011

Я создаю куб, и человек, который написал программное обеспечение, сделал поле productSize в данных varchar (50) вместо числового типа данных. Это также необычно тем, что может содержать, например, 9 или 4,5x2. Может ли рассчитанная мера преобразовать varchar в десятичное в этой ситуации?

Редактировать: Теперь я понимаю, что могу создать Именованный расчет, щелкнув правой кнопкой мыши столбец таблицы в DSV. Мне все еще нужно выяснить, как закодировать выражение, хотя. Это все, что у меня есть ...

CASE
WHEN SUBSTRING(ProductSize, 2,1) = 'x' THEN 0 // detects an 'x' in char 2 but I need to detect an x anywhere, and verify the string can be converted to a number 
ELSE
    cast(ProductSize as DECIMAL)
END

1 Ответ

1 голос
/ 16 августа 2011

Ответ на мой вопрос был прост в том, что я просто использую SQL для создания именованных вычислений в представлении DataSet.Как указано выше, это просто вопрос создания оператора синтаксического анализа с использованием синтаксиса SQL.Следующее выражение работает сейчас.

CASE
WHEN ISNUMERIC(ProductSize)<>1 THEN 
    0 // zero for now, later figure out SQL to parse alpha data
ELSE
    cast(ProductSize as INT)
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...