表里面的数据是这样的:
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 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对多的关系表,是否要加主键
- 高分求教一个三表联合查询语句。
- !!!两个表同时更新的问题!!!
- sql MF查询问题 快快
- 表的提取问题....
- 怎样用语句删除某表的所有外键(FK),和重新建立这些外键?
- 为什么我用sql企业管理器打开表时经常报“键列信息不足或不正确。更新影响过多行"
- 谁能讲一下‘内连接’,‘外连接’、‘交叉连接’、‘自身连接’!
- (小问题也给100分)我的sa用户怎么不起作用了?
- ORACLE8i个人版服务名的配置问题?DBA高手请进!!!
- sql server 2008 sql 语句操作时间问题
- SQL SERVER Merge 函数中的using部分可以用子查询吗?
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/次
*/???
+ CarTypeMoney + '/' + StopTime
as CarType from tb1,将CarTypeName字段中的值转换成全角
2、replicate中换成全角空格
--全角转半角
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 行受影响)
--全角转半角
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 行受影响)