根据字段sSaleOrderCode进行判断,如果S开头显示销样,G开头显示备胚,,其余大货,但为什么报错
消息 512,级别 16,状态 1,第 44 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

解决方案 »

  1.   

    CASE WHEN SSALEORDERCODE LIKE 'S%' THEN '销样' WHEN SSALEORDERCODE LIKE 'G%' THEN '备胚' ELSE '大货' END AS '订单类型'
      

  2.   

    不对,like语法错误
      

  3.   

    报错不是已经告诉你,你的两句带like的子查询有返回超过一行结果的,你判断开头字母写同表的子查询干什么,资源再多也不是这样用的,left或者substr不就好了
      

  4.   

    这个就是,我是测试SQL语句可不可以查到,like不能当成when的判断条件吗?
      

  5.   


    LIKE是可以当when的判断条件的,你的错误在于判断条件值是一个子查询的结果集,而这个结果集不止一条结果记录,一对多如何判断。
      

  6.   

    解决了,case后多了个字段名,感谢
      

  7.   

    不是case后多了个字段名的问题,6楼正解