COALESCE
является отличным вариантом для этого: здесь можно найти дополнительную информацию . Он оценивает аргументы по порядку и возвращает текущее значение первого выражения, которое изначально не оценивается как NULL.
ISNUMERIC
возвращает 0 или 1 в зависимости от того, можно ли оцениваемое значение считать одним из числовых или числовых типов SQL. например int, bigint, money ..
NULLIF
по существу находит указанное вами значение и, если оно совпадает, заменяет его значением NULL
.
CAST
Просто меняет тип данных на другой в этом примере на MONEY
Как вы можете видеть, если вы разберетесь ниже, используя эту информацию, я думаю, это довольно элегантное решение?
COALESCE(CAST(NULLIF(ISNUMERIC(COL1), 1) AS MONEY), COL1)