У меня есть поле в нашей базе данных SQL, обозначенное как результат-ответ. В этом поле представлены результаты и любые примечания к ним. Я нашел логику для извлечения чисел из поля, но я не могу преобразовать их в числовые. Мы используем Precision BI в качестве нашей промежуточной программы.Я не могу преобразовать числа, извлеченные из текстового поля, чтобы считаться числовыми в SQL
Я пытаюсь вытащить только те, у которых значение меньше 7. Я использую только цифры, используя строку, которая извлекает только цифры из полей.
Left(SubString([result].[resultanswer], PatIndex('%[0-9.-]%', [result].
[resultanswer]), 8000), PatIndex('%[^0-9.-]%', SubString([result].[resultanswer],
PatIndex('%[0-9.-]%', [result].[resultanswer]), 8000) + 'X')-1)
Однако, когда я добавить запрос отображает только те числа менее 7 я получаю ошибку преобразования, чаще всего по линии "не удалось преобразовать VARCHAR в числовой. Если я запустил поиск без запроса менее 7, он будет работать только отлично и отображать только цифры в этом поле. Если я добавлю поле для отображения, если это поле является числовым, оно отображает 1 или да для всех из них. Я могу принимать и преобразовывать значения в числовые с помощью функции преобразования или функции трансляции (добавляя преобразование или преобразование в начало указанной строки), но как только я добавляю менее 7 критериев, он говорит, что он не может преобразовать , несмотря на это, прежде чем добавлять критерии. Все это не имеет смысла.
Вот пример данных.
result-numericresult result-resultanswer result-numeric
9.23 9.23 9.23
.00 9.24 9.24
.00 9.24 Result Repeated 9.24
.00 9.25 9.25
9.25 9.25 9.25
Как вы можете видеть, у меня есть поле результата (так называемый numericresult), который имеет уже числовые, то проблема с ним в том, что программа поставляет данные в БД посылает нули вместо фактических значений. У меня также есть поле ответа результата (называемое resultanswer), которое дает мне числовые данные, но также имеет текст. Цель состояла в том, чтобы в основном заменить поле numericresult на реальное поле numericresult, которое не имеет нулей, когда это не должно. Таким образом, строка вытягивает числа из поля resultanswer. Последний столбец (называемый числовым) - это настраиваемое поле, которое вытягивает числа из поля resultanswer и является полем, которое я пытаюсь измерить. Таким образом, эти значения меньше 7.
Приносим извинения, что не включая эту информацию в исходное сообщение, но у нас был сильный шторм, и огни были неустойчивыми. Поэтому, вместо того, чтобы потерять то, что у меня было, я пошел вперед и отправил.
может быть, немой вопрос, но почему вы объединяете их в одном поле? Все будет намного легче для вас, если вы отделите значение от описания .... – jaltiere
Можете ли вы показать свою структуру таблицы, образцы данных и точный запрос, который вы используете? – Olaf
Я согласен с Олафом - кроме того, что DMBS вы используете? –