有一个数据列: 
08302
08304
08305
08306
.....
我想把这列中的首位0去掉,变成
8302
8304
8305
8306
.....
这个语句怎么写?

解决方案 »

  1.   

    Update TableName Set ColName = Stuff(ColName, 1, 1, '')
      

  2.   

    select substring(字段,2,len(字段) - 1) from tb
      

  3.   

    if object_id('pubs..tb') is not null
       drop table tb
    gocreate table tb
    (
    字段 varchar(10)
    )insert into tb(字段) values('08302')
    insert into tb(字段) values('08304')
    insert into tb(字段) values('08305')
    insert into tb(字段) values('08306')select substring(字段,2,len(字段) - 1) as 字段 from tbdrop table tb字段         
    ---------- 
    8302
    8304
    8305
    8306(所影响的行数为 4 行)
      

  4.   

    或者if object_id('pubs..tb') is not null
       drop table tb
    gocreate table tb
    (
    字段 varchar(10)
    )insert into tb(字段) values('08302')
    insert into tb(字段) values('08304')
    insert into tb(字段) values('08305')
    insert into tb(字段) values('08306')select case when left(字段,1) = '0' then substring(字段,2,len(字段) - 1) else 字段 end as 字段 from tbdrop table tb
    字段         
    ---------- 
    8302
    8304
    8305
    8306(所影响的行数为 4 行)
      

  5.   

    Update TableName Set ColName = Stuff(ColName, 1, 1, '')
    where ColName like '0%'
      

  6.   

    into_the_sky(行云流水) ( 
    会,第一位有可能不是0,所以不能这样写。用我后面写的那个.
      

  7.   

    列中数据的字段长度是不一样的,就是说是这样的数据情况:08303
    08302
    00abcd
    0abc
    0xxxxxx
    。。
      

  8.   

    如果第一位不是0,是不是不用更改這麼寫Update TableName Set ColName = Stuff(ColName, 1, 1, '')
    Where Left(ColName, 1) = '0'
      

  9.   

    如果只是查詢Select (Case When Left(ColName, 1) = '0' Then Stuff(ColName, 1, 1, '') Else ColName End) From TableName
      

  10.   

    into_the_sky(行云流水) ( ) 信誉:98    Blog  2007-03-15 09:54:31  得分: 0  
     
     
       不是查询,我要updata
      
     
    -------
    那就是這個Update TableName Set ColName = Stuff(ColName, 1, 1, '')
    Where Left(ColName, 1) = '0'
      

  11.   

    SUBSTRING (Transact-SQL) 返回字符表达式、二进制表达式、文本表达式或图像表达式的一部分。有关可与该函数一起使用的有效 SQL Server 2005 数据类型的详细信息,请参阅数据类型 (Transact-SQL)。主题链接图标 Transact-SQL 语法约定
    语法语法SUBSTRING ( expression ,start , length )参数参数expression    是字符串、二进制字符串、文本、图像、列或包含列的表达式。不要使用包含聚合函数的表达式。start    指定子字符串开始位置的整数。start 可以为 bigint 类型。length    一个正整数,指定要返回的 expression 的字符数或字节数。如果 length 为负,则会返回错误。length 可以是 bigint 类型。
        注意:
        因为 start 和 length 指定了字节数,所以对具有 DBCS 排序规则的 text 数据类型(如日本汉字)使用 SUBSTRING 时,可能会在结果的开始或结束位置导致字符拆分。此行为与 READTEXT 处理 DBCS 的方式一致。因此,我们建议您针对 DBCS 字符使用 ntext 而不是 text。我们建议的另一种备用方法是使用 varchar(max) 数据类型,因为它不会拆分 DBCS 排序规则的字符。备注备注必须以字符数指定使用 ntext、char 或 varchar 数据类型的偏移量(start 和 length)。必须以字节数指定使用 text、image、binary 或 varbinary 等数据类型的偏移量。
    注意:
    兼容级别可能影响返回值。有关兼容级别的详细信息,请参阅 sp_dbcmptlevel (Transact-SQL)。返回类型返回类型如果 expression 是受支持的字符数据类型,则返回字符数据。如果 expression 是受支持的 binary 数据类型,则返回二进制数据。返回的字符串类型与指定表达式的类型相同(表中显示的除外)。
      

  12.   


    substring 函数返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。string substring(string, number, number?)备注备注该字符串中的每个字符都被认为具有数字位置:第一个字符的位置是 1,第二个字符的位置是 2,依此类推。如果未指定第三个参数,将返回从第二个参数指定的位置开始直到字符串结尾的子字符串。如果参数不是字符串类型,将先使用 string() 函数转换为字符串,然后计算该转换的结果。
    警告作为参数传递给此函数的节点集的字符串转换可能会产生意外的结果。有关更多信息,请参见 string 函数。此函数区分大小写。
    示例示例以下函数调用返回“234”:substring("12345",2,3)以下函数调用返回“2345”:substring("12345",2)返回的子字符串包含如下字符:字符位置大于或等于第二个参数的舍入值,且如果指定了第三个参数,小于第二个和第三个参数的舍入值之和。上面使用的比较和加法遵循 IEEE 754 标准规则;如同调用 round() 函数一样进行舍入。下列示例阐释异常情况。substring("12345", 1.5, 2.6) 返回“234”substring("12345", 0, 3) 返回“12”substring("12345", 0 div 0, 3) 返回 ""substring("12345", 1, 0 div 0) 返回 ""substring("12345", -42, 1 div 0) 返回 "12345"substring("12345", -1 div 0, 1 div 0) 返回 ""该示例演示前一个 substring() 表达式。
    这个是C#的语法
      

  13.   

    update tb set col=substring(col,2,len(col)) where left(col,1)='0'
      

  14.   

    update tb set col=cast(col as bigint)
      

  15.   

    update tb set col=substring(col,2,len(col))
      

  16.   

    我想请问一下,substring和Stuff那个效率高啊?STUFF ( character_expression , start , length ,character_expression )字符串,开始位,长度,替换为参数参数character_expression    一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。start    一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个 character_expression长,则返回空字符串。start 可以是 bigint 类型。length    一个整数,指定要删除的字符数。如果 length 比第一个 character_expression长,则最多删除到最后一个 character_expression 中的最后一个字符。length 可以是 bigint 类型。备注备注如果结果值大于返回类型支持的最大值,则产生错误。
    返回类型返回类型如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。
    示例示例以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。SELECT STUFF('abcdef', 2, 3, 'ijklmn')
    GO下面是结果集: --------- 
    aijklmnef (1 row(s) affected)
      

  17.   

    update tablename set colname= substr(colname,2)
    貌似
      

  18.   

    Update TableName Set ColName = Stuff(ColName, 1, 1, '')
    where left(ColName,1)  ='0'Update TableName Set ColName = substring(ColName,2,len(ColName)-1)
    where left(ColName,1)  ='0'