мне нравится, чтобы проверить длину указанных полей й длина и доступное значением является числовым значениемSQL записей проверка в таблице
я могу сделать это, используя два отдельных заявления регистра, как показано ниже
(case when len(columnA) = 10 then 0 else 1 end)+
(case when IsNumeric(columnA) = 1 then 0 else 1 end)+
(case when len(columnB) = 8 then 0 else 1 end)+
(case when IsNumeric(columnB) = 1 then 0 else 1 end)
Есть ли лучший подход, поскольку мне нужно это для более чем 40 столбцов, а их тип данных - varchar, и каждый из столбцов будет иметь определенную длину.
используя некоторый короткий путь для снижения выше двух заявлений случае в одной строке
Вы можете создать определенную пользователем функцию и передать значение столбца, длину, которую вы хотите проверить, и переместить в эту функцию два оператора case (len и isnumeric). вызывать функцию в select в каждом столбце –
IsNumeric НЕ означает, что значения фактически являются числами. Такие вещи, как 1e4 и $ 145, будут оцениваться как истинные при использовании IsNumeric. –
является ли ограничение проверки на таблицу опцией? –