SELECT @Str = SubString(@Str,DataLength(@Str)-4,5)

解决方案 »

  1.   

    就用RIGHT丫!!SELECT @Str=RIGHT(@Str,5)
      

  2.   

    Declare @str varchar(10)
    set @str='abcdefgddsss'
    SELECT @Str=RIGHT(@Str,5)
    print @str
      

  3.   

    字符串函数:
    right(,):返回从字符串右边开始指定个数的字符。
    left(,):返回从字符串左边开始指定个数的字符。
    substring(,,):返回字符、binary、text 或 image 表达式的一部分
      

  4.   

    select SubString(expression,DataLength(expression)-4,5)
      

  5.   


    对不起,刚才少了一个问题,再加一个才值100分。问题如下,用SQL语句实现在表中查询是否有CompanyName字段,如果有将其设置为 char(10),如果没有,将增加一字段CompanyName,设置为char(10)。
    谢谢先了,这样值100分了吧!!!!
      

  6.   

    問題還挺多地:)
    IF EXISTS(select * from syscolumns WHERE ID=OBJECT_ID(N'YourTable') AND name=N'CompanyName')
         ALTER TABLE YourTable ALTER COLUMN CompanyName char(10)
    ELSE
        ALTER TABLE YourTable ADD   CompanyName char(10)
      

  7.   

    对了忘了告诉你,要考虑里面是否已经有了数据了!!不过改为CHAR应该没什么问题的,只是可能长度会不一样,不过也不用担心,它会自动截取的!
      

  8.   

    select count(*) from sysobjects a left join syscolumns b on a.id=b.id 
    where a.name='your table name' and b.name='CompanyName'
      

  9.   

    N_Chow(一劍飄香++),zcflion(土匪) ,xhfjy(峰) ,genphone_ru(票票) ,warning(爱就爱了) (  ),leimin(leimin) (  ):
      第一个问题已经实现了,谢谢!!等会给分!!!  看看:回复人: N_Chow(一劍飄香++) (  ) 信誉:100  2002-04-10 10:28:00 :
       该语句报错呢?错误如下:    Invalid column name 'ID'.
        Invalid column name 'name'.
     
      

  10.   

    N_Chow:
      
     你的语句:
      IF EXISTS(select * from syscolumns WHERE ID=OBJECT_ID(N'YourTable') AND name=N'CompanyName')
         ALTER TABLE YourTable ALTER COLUMN CompanyName char(10)
    ELSE
        ALTER TABLE YourTable ADD   CompanyName char(10)运行成功了,但是CompanyName字段没有改变呢?还是与以前一样为char(8)
      

  11.   

    不會吧~~~我這運行很正常呀~~~~測試代碼如下:
    --(1)
    Create table Yourtable (ID int, CompanyName char(8))  --先讓YourTable 中有CompnayName字段,長度為8
    Go
    IF EXISTS(select * from syscolumns WHERE ID=OBJECT_ID(N'YourTable') AND name=N'CompanyName')
         ALTER TABLE YourTable ALTER COLUMN CompanyName char(10)
    ELSE
        ALTER TABLE YourTable ADD   CompanyName char(10)Exec sp_columns YourTable
    --此時的Length已經改成了10
    Drop table YourTable
    --(2)
    Create table Yourtable (ID int)  --table中沒有 CompanyName字段
    Go
    IF EXISTS(select * from syscolumns WHERE ID=OBJECT_ID(N'YourTable') AND name=N'CompanyName')
         ALTER TABLE YourTable ALTER COLUMN CompanyName char(10)
    ELSE
        ALTER TABLE YourTable ADD   CompanyName char(10)Exec sp_columns YourTable
    --此時table中已經存在了CompanyName字段,長度為10
    drop table YourTable
      

  12.   

    N_Chow(一劍飄香++):我在SQL SERVER的查询分析器里执行以上语句的
    我再试了一次还不成功,我的表格里有1000条记录,程序报有
    (1000 row(s) affected),但是字段的长度没有改变。但我用你的代码重新在数据库建立一个新表又可以了,如将你代码中的Yourtable改为其他的任何表名都可以,但是我的表就是不行,奇怪呀?
      

  13.   

    leimin(leimin) (  ) ,Yang_(扬帆破浪),N_Chow(一劍飄香++):谢谢关心!我在我的表格中试其他的字段,都可以,就是我本身需要检验的哪个字段不行,这种
      

  14.   

    刚才太急,SORRY。我在我的表格中试其他的字段,都可以,就是我本身需要检验的那个字段不行,这种情况有几种可能呢?外键在哪儿看呀?