有一列为(NVARCHAR(max))想把纯数字的删掉 用ISNUMERIC()
报错 :将截断字符串或二进制数据。 有啥好解决办法嗯?
------解决思路----------------------
DECLARE @i NVARCHAR(MAX)=''
WHILE DATALENGTH(@i) <=15999 --测试了一下,长度到16000的时候就报错了。
BEGIN
SET @i =@i+'a'
END
--PRINT @i
SELECT ISNUMERIC(@i)
推荐一个思路
SELECT REPLACE(REPLACE(REPLACE(string,'0',''),'1',''),'2','') --replace 所有的数字,还有空格,如果剩余的字符串,长度为0(datalength 来判定),则为纯数字。
参考
------解决思路----------------------
感觉用ISNUMERIC判断是否全数字不太合适
--给你个参考
SELECT * FROM TB WHERE PATINDEX('%[^0-9]%',col)=0