Gaurav_Chaudhary Ответов: 1

Как найти числовые значения и числовые значения, разделенные запятыми, в SQL server.


Я могу иметь значения 12345 или 12345,45678,890765 внутри столбца типа varchar


Выберите * из PlayerAnswer, где ответ является числовым или разделенным запятыми числовыми значениями.

Что я уже пробовал:

select * from PlayerAnswer where ISNUMERIC(Answer)=1 and Answer != null


но я получаю неверные результаты.

1 Ответов

Рейтинг:
2

OriginalGriff

ISNUMERIC работает только в том случае, если вся строка может быть преобразована в одно число: данные, разделенные запятыми, не вернут 1, так как они не могут быть приведены в допустимый числовой формат.

Честно говоря, вы находитесь в проигрыше, делая это в SQL - хотя это можно сделать, это будет сложно и трудно поддерживать - Вам было бы гораздо лучше делать это в вашем коде презентации, а не пытаться заставить его работать в функции базы данных.

Если вы настаиваете на том, чтобы сделать это SQL, то это может помочь вам начать работу: Преобразование данных, разделенных запятыми в столбце, в строки для выбора[^]- но ожидайте, что это будет грязный процесс, SQL имеет (в лучшем случае) плохую обработку строк.