2016-01-06 4 views
0

У меня есть таблица, одна из которых является строкой, но значение может быть int (конвертируется в int) и может быть строка вроде этого (Column Update By):Как выбрать отличное Не конвертируемое значение в столбце SQL Sever

Update By

Если значение System Service, это означает, не связанные с User Table Если значение является конвертируемым в целое, то это означает, связанное с User Table.

Как выбрать отдельное значение, не относящееся к таблице пользователей?

* Обновление By - это строка в DB.

ответ

4

Если это именно целое число вы ищете, то not like лучше isnumeric():

select distinct [Update By] 
from t 
where [Update By] not like '%[^0-9]%'; 
+0

Как вы можете знать, что не лучше, чем ISNUMERIC, сэр? Есть ли какой-либо сайт или видео, которые объясняют это, или вы предполагаете, проверяя напрямую, наблюдаете и сравниваете время выполнения? – toha

+0

@toha. , , 'ISNUMERIC()' не гарантирует преобразование в целое число. –

2

Я думаю, что вы бы использовать ISNUMERIC

SELECT DISTINCT [Update By] WHERE ISNUMERIC([Update By]) <> 1 
+1

Это должно быть ISNUMERIC ([Update По ]) <> 1 в соответствии с указанным выше вопросом. – knkarthick24

+0

Ты абсолютно прав. –

Смежные вопросы