表里面的数据是这样的:
1 A 三轮 1.0 次 NULL
2 B 货的(皮卡) 2.0 次 NULL
4 C 拖拉机 3.0 次 NULL
5 D 箱式车 5.0 次 NULL
6 E 中卡车 10.0 次 NULL
7 F 大卡车 15.0 次 NULL
8 G 集装箱(后四轮) 20.0 次 NULL
9 H 大型集装箱(后八轮) 30.0 次 NULL
10 I 手拉车 0.0 次 NULL我实现这么一个查询:
select Id, left(Flag + replicate(' ', 5), 5) + left(CarTypeName + replicate(' ', 15), 15) 
+ CarTypeMoney + '/' + StopTime
as CarType from CarTypeTBL结果是这样的:
1 A    三轮             1.0/次
2 B    货的(皮卡)         2.0/次
4 C    拖拉机            3.0/次
5 D    箱式车            5.0/次
6 E    中卡车            10.0/次
7 F    大卡车            15.0/次
8 G    集装箱(后四轮)       20.0/次
9 H    大型集装箱(后八轮)     30.0/次
10 I    手拉车            0.0/次我希望这里的最后一列能对对齐,有什么好办法么?

解决方案 »

  1.   


    DECLARE @table TABLE(cartypemoney VARCHAR(10),stoptime VARCHAR(10))
    INSERT INTO @table
    SELECT '1.0','次'
    UNION ALL
    SELECT  '15.0','次'
    UNION ALL
    SELECT  '8.0','次'SELECT REVERSE(CONVERT(VARCHAR(10),REVERSE(CarTypeMoney + '/' + StopTime)+SPACE(10)))
    FROM @table/*(3 行受影响)----------
        1.0/次
       15.0/次
        8.0/次
    */???
      

  2.   

    select Id, left(Flag + replicate(CHAR(9), 5), 5) + left(CarTypeName + replicate(' ', 50), 30)  
    + CarTypeMoney + '/' + StopTime
    as CarType from tb1,将CarTypeName字段中的值转换成全角
    2、replicate中换成全角空格
      

  3.   

    我要把结果显示在c#的combobox里面,只能绑定一个字段的
      

  4.   


    --全角转半角
    Create FUNCTION [dbo].[f_Convert](@str NVARCHAR(4000), --要转换的字符串@flag bit              --转换标志,0转换成半角,1转换成全角)RETURNS nvarchar(4000)ASBEGIN    DECLARE @pat nvarchar(8),@step int,@i int,@spc int    IF @flag=0        SELECT @pat=N'%[!-~]%',@step=-65248,            @str=REPLACE(@str,N' ',N' ')    ELSE        SELECT @pat=N'%[!-~]%',@step=65248,            @str=REPLACE(@str,N' ',N' ')    SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)    WHILE @i>0        SELECT @str=REPLACE(@str,                SUBSTRING(@str,@i,1),                NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))            ,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)    RETURN(@str)ENDgocreate table tb
    (id int,
    Flag varchar(2),
    CarTypeName nvarchar(15),
    CarTypeMoney varchar(6),
    StopTime Nvarchar(1)
    )
    insert into tb
    select 1,'A' ,'三轮', '1.0', '次' union all
    select 2,'B' ,'货的(皮卡)', '2.0', '次' union all
    select 4, 'C', '拖拉机', '3.0', '次' union all
    select 5, 'D', '箱式车', '5.0', '次' union all
    select 6, 'E', '中卡车', '10.0', '次' union all
    select 7, 'F', '大卡车', '15.0', '次' union all
    select 8, 'G', '集装箱(后四轮)', '20.0', '次' union all
    select 9 ,'H','大型集装箱(后八轮)', '30.0', '次' union all
    select 10, 'I', '手拉车', '0.0', '次'
    select Id, left(Flag + replicate(CHAR(9), 5), 5) + left([dbo].[f_Convert](CarTypeName,1) + replicate(' ', 15), 15)  
    + CarTypeMoney + '/' + StopTime
    as CarType from tbId          CarType
    ----------- ------------------------------
    1           A 三轮             1.0/次
    2           B 货的(皮卡)         2.0/次
    4           C 拖拉机            3.0/次
    5           D 箱式车            5.0/次
    6           E 中卡车            10.0/次
    7           F 大卡车            15.0/次
    8           G 集装箱(后四轮)       20.0/次
    9           H 大型集装箱(后八轮)     30.0/次
    10          I 手拉车            0.0/次(9 行受影响)
      

  5.   


    --全角转半角
    Create FUNCTION [dbo].[f_Convert](@str NVARCHAR(4000), --要转换的字符串@flag bit              --转换标志,0转换成半角,1转换成全角)RETURNS nvarchar(4000)ASBEGIN    DECLARE @pat nvarchar(8),@step int,@i int,@spc int    IF @flag=0        SELECT @pat=N'%[!-~]%',@step=-65248,            @str=REPLACE(@str,N' ',N' ')    ELSE        SELECT @pat=N'%[!-~]%',@step=65248,            @str=REPLACE(@str,N' ',N' ')    SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)    WHILE @i>0        SELECT @str=REPLACE(@str,                SUBSTRING(@str,@i,1),                NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))            ,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)    RETURN(@str)ENDgo
    --创建表
    create table tb
    (id int,
    Flag varchar(2),
    CarTypeName nvarchar(15),
    CarTypeMoney varchar(6),
    StopTime Nvarchar(1)
    )--测试数据
    insert into tb
    select 1,'A' ,'三轮', '1.0', '次' union all
    select 2,'B' ,'货的(皮卡)', '2.0', '次' union all
    select 4, 'C', '拖拉机', '3.0', '次' union all
    select 5, 'D', '箱式车', '5.0', '次' union all
    select 6, 'E', '中卡车', '10.0', '次' union all
    select 7, 'F', '大卡车', '15.0', '次' union all
    select 8, 'G', '集装箱(后四轮)', '20.0', '次' union all
    select 9 ,'H','大型集装箱(后八轮)', '30.0', '次' union all
    select 10, 'I', '手拉车', '0.0', '次'--注意第一个为半角' ' ,第二个问全角' '
    select Id, left(Flag + replicate(' ', 5), 5) + left([dbo].[f_Convert](CarTypeName,1) + replicate(' ', 15), 15)  
    + CarTypeMoney + '/' + StopTime
    as CarType from tb--结果
    Id          CarType
    ----------- ------------------------------
    1           A    三轮             1.0/次
    2           B    货的(皮卡)         2.0/次
    4           C    拖拉机            3.0/次
    5           D    箱式车            5.0/次
    6           E    中卡车            10.0/次
    7           F    大卡车            15.0/次
    8           G    集装箱(后四轮)       20.0/次
    9           H    大型集装箱(后八轮)     30.0/次
    10          I    手拉车            0.0/次(9 行受影响)