where 句中加一个 and wcks in (‘ET’,‘KQ’)  可以实现你这一个要求,你若仅仅是这个要求可以试试这个

解决方案 »

  1.   

    出这个了:
    不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
    应该怎么用?
    WCKS是text类型的
      

  2.   


    这个字段里存的是这个ID号的对应的人未检查的科室,但是我们有内科,外科这些需要知道的科室,但是也有餐厅这类不需要查询的科室,所以我想在我查询的时候就要去调像餐厅这类不需要的可是代码,所以所有查询我都需要去掉+ET+KQ
    比如我不查询ID号,用这个:
    SELECT wcks FROM JCXX WHERE DWDM='SA004988' AND WCKS is NOT NULL
    数据库就会出现很多的
    ET+KQ+TZJ+WZ
    ET+TZJ+WZ
    KQ+TZJ+WZ
    ET+KQ+TZJ
    ET+KQ+WZ
    这种结果
    但是我只想让它显示:
    TZJ+WZ
    TZJ+WZ
    TZJ+WZ
    TZJ
    WZ
    这种结果就可以了
      

  3.   

    SELECT STUFF(REPLACE('+'+wcks, '+ET+KQ', ''), 1,1,'') wcks
      FROM JCXX 
     WHERE DWDM='SA004988' AND WCKS is NOT NULL
      

  4.   


    报错了:对数据类型而言运算符无效。运算符为 add,类型为 text。
    WCKS是TEXT类型的...
      

  5.   

    你自己把wcks转成varchar类型啊。我这里按varchar测试是正确的。
    这么短的内容居然用text,存心找麻烦!
      

  6.   

    那我转换成varchar类型会不会影响到程序运行?因为我处理数据都是用查询分析器进行处理,所以这边无所谓,但是程序里的查询语言是集成在程序里的,我没有办法更改,所以不能影响到程序运行(他们数据我看了下,几乎没有varchar,都是text)
      

  7.   

    只是在语句中先用 Convert() 函数转换啊,又不需要改字段类型。
      

  8.   

    不会用Convert() 函数........还有个事,刚才新建个数据库,转成varchar类型,试了下,如果ET+KQ是连着的,能去掉,但是数据库里面的字段排列貌似是随机的,不一定都是ET+KQ连着,可能是ET+WZ+KQ这种的...
      

  9.   

    SELECT STUFF(REPLACE(REPLACE('+'+wcks, '+ET', ''), '+KQ', ''), 1,1,'') wcks
      

  10.   

    解决了,Convert() 函数也会用了!谢啦!