某表有多个布尔字段,某个运算的时候需要把布尔转换成varchar,一般的做法像下面的写法,多个convert相加,有没有简单的写法能省去这么多个Convert?用一个Convert行不行?
CONVERT(VARCHAR,C1) + CONVERT(VARCHAR,C2) + CONVERT(VARCHAR,C3) + CONVERT(VARCHAR,C4)

解决方案 »

  1.   

    --只能简化成这样子了
    LTRIM(C1) + LTRIM(C2) + LTRIM(C3) + LTRIM(C4) 
      

  2.   

    wwwwgou,再问一个问题
    很多时候存储过程根据传过来的Id号查询相关记录,这样必须在过程里解析Id,我现在的方法是拼接sql,然后再exec,能不能不用拼接,不用最后跑exec?
    举例:
    DECLARE @IncludeItems VARCHAR(100), @sRid varchar(100)
    set @sRid =  '10101,10102,10201'
    SET @IncludeItems = 'SELECT Rid INTO #IncludeItemss FROM Item WHERE Rid IN(' + @sRid + ')'
    EXEC (@IncludeItems)
      

  3.   

    能。就是在存储过程中把‘1,2,3,4’这样的字符串解析成一张表,然后再和ITEM表进行JOIN即可。你可以从网上查一下关键字:字符串拆分
      

  4.   

    wwwwgou:
    还有一种方式是过程接收xml,2005以上的版本支持xml,字符串拆分和用xml哪个方式更好?