ISNUMERIC
确定表达式是否为一个有效的数字类型。语法
ISNUMERIC ( expression )参数
expression要计算的表达式。返回类型
int注释
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。示例
A. 使用 ISNUMERIC
下面的示例返回 1,这是因为 zip 列包含有效的数值。 USE pubs
SELECT ISNUMERIC(zip) 
FROM authors
GO

解决方案 »

  1.   

    select id,name,value=case when charindex('台',value)>0 then replace(value,'台','') else value end from tab
      

  2.   

    select id,name,replace(value,'台','') from 表 
      

  3.   

    是不是数据只有'台'这么一个?select id , name , value replace(value , '台' , '') from tb如果不是要使用一个函数。
      

  4.   

    -非a-z A-Z 0-9以及中文字符之外的字符删除.txt建立如下函数
    create function getnewstr
    (@oldstr varchar(100))
    returns varchar(100)
    as
    begin
    declare @i int
    set @i = 1
    while @i <= len(@oldstr)
    if substring(@oldstr, @i, 1) like('[^a-z,A-Z,0-9]')
    set @oldstr = replace(@oldstr, substring(@oldstr, @i, 1), '')
    else
    set @i = @i +1
    return @oldstr
    end
    这样写更新语句
    update 表
    set 字段 = dbo.getnewstr(字段)
    where
    字段 like('%[^a-z,A-Z,0-9]%')
      

  5.   

    declare @t table (id int,       name  varchar(20),      value varchar(20))
    insert into @t select 1,'甲','100台'
    insert into @t select 2,'乙','98'
    insert into @t select 3,'丙','1997台'
    insert into @t select 4,'丁','7台'
    select id,name,replace(value,'台','') from @t1 甲 100
    2 乙 98
    3 丙 1997
    4 丁 7
      

  6.   

    回楼上确实不止是只有台这个有可能是
        id       name       value 
        1           甲         100(台) 
          2         乙             98 
        3           丙           1997(千台) 
        4           丁             7台 
    .....
    情况求教这样该如何解决?
      

  7.   

    create table tb (id int, name varchar(10), value varchar(10))
    insert into tb values(1, '甲', '100台') 
    insert into tb values(2, '乙', '98') 
    insert into tb values(3, '丙', '1997台') 
    insert into tb values(4, '丁', '7台') 
    goselect id , name , value = replace(value , '台' , '') from tbdrop table tb/*
    id          name       value  
    ----------- ---------- -------
    1           甲          100
    2           乙          98
    3           丙          1997
    4           丁          7(所影响的行数为 4 行)
    */
      

  8.   

    create table tb (id int, name varchar(10), value varchar(10))
    insert into tb values(1, '甲', '100台') 
    insert into tb values(2, '乙', '98') 
    insert into tb values(3, '丙', '1997台') 
    insert into tb values(4, '丁', '7台') 
    go--非0-9以及中文字符之外的字符删除.txt
    --建立如下函数
    create function getnewstr(@oldstr varchar(100))
    returns varchar(100)
    as
    begin
      declare @i int
      set @i = 1
      while @i <= len(@oldstr)
        if substring(@oldstr, @i, 1) like('[^0-9]')
           set @oldstr = replace(@oldstr, substring(@oldstr, @i, 1), '')
        else
           set @i = @i +1
           return @oldstr
    end
    goselect id , name , value = dbo.getnewstr(value) from tbdrop table tb
    drop function getnewstr
    /*
    id          name       value  
    ----------- ---------- -------
    1           甲          100
    2           乙          98
    3           丙          1997
    4           丁          7(所影响的行数为 4 行)
    */
      

  9.   

    create table tb (id int, name varchar(10), value varchar(10))
    insert into tb values(1, '甲', '100(台)') 
    insert into tb values(2, '乙', '98') 
    insert into tb values(3, '丙', '1997(千台)') 
    insert into tb values(4, '丁', '7台') 
    go--非0-9以及中文字符之外的字符删除.txt
    --建立如下函数
    create function getnewstr(@oldstr varchar(100))
    returns varchar(100)
    as
    begin
      declare @i int
      set @i = 1
      while @i <= len(@oldstr)
        if substring(@oldstr, @i, 1) like('[^0-9]')
           set @oldstr = replace(@oldstr, substring(@oldstr, @i, 1), '')
        else
           set @i = @i +1
           return @oldstr
    end
    goselect id , name , value = dbo.getnewstr(value) from tbdrop table tb
    drop function getnewstr
    /*
    id          name       value  
    ----------- ---------- -------
    1           甲          100
    2           乙          98
    3           丙          1997
    4           丁          7(所影响的行数为 4 行)
    */
      

  10.   

    create function ss(@value varchar(100))
    returns varchar(100)
    as
    begin
    while(patindex('%[^0-9]%',@value)>0)
    begin
    set @value=isnull(substring(@value,1,patindex('%[^0-9]%',@value)-1),'')+isnull(substring(@value,patindex('%[^0-9]%',@value)+1,len(@value)),'')
    end
    return @value
    enddeclare @t table (id int,       name  varchar(20),      value varchar(20))
    insert into @t select 1,'甲','100台'
    insert into @t select 2,'乙','98'
    insert into @t select 3,'丙','1997台'
    insert into @t select 4,'丁','7台'
    select id,name,dbo.ss(value) from @t
      

  11.   


    或者用stuff()函数:
    alter function ss(@value varchar(100))
    returns varchar(100)
    as
    begin
    while(patindex('%[^0-9]%',@value)>0)
    begin
    set @value=stuff(@value,patindex('%[^0-9]%',@value),1,'')
    end
    return @value
    end
    select id,name,dbo.ss(value) from @t