где не датайпе sql - PullRequest
       17

где не датайпе sql

0 голосов
/ 18 марта 2019

Я пытаюсь отфильтровать некоторые данные - у меня есть столбец, который выглядит, как правило, smallint / int. В любом случае я могу запустить оператор where, чтобы сказать, где не int или где не маленький int ??

Диспетчер Microsoft SQL Server.

1 Ответ

1 голос
/ 18 марта 2019

Если вам нужно предложение where, в котором можно указать, содержит ли столбец информацию, которую нельзя преобразовать в int или smallint, вы можете использовать try_cast:

SELECT *
FROM <TableName>
WHERE TRY_CAST(<ColumnName> AS Int) IS NULL

Youможно изменить int на smallint, чтобы получить значения, которые не могут быть преобразованы в smallint, но могут быть преобразованы в int.

Не забудьте заменить <TableName> и <ColumnName> к именам соответствующей таблицы и столбца.

Встроенная функция Try_Cast вернет ноль, если значение в <ColumnName> равно нулю или если его невозможно преобразовать в int (ипоскольку все значения smallint также можно преобразовать в int, его также нельзя преобразовать в smallint).

...