22,209
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE tb(
id int,
orderid int,
employeename nvarchar(10),
fylx nvarchar(10),
je money
);
INSERT tb
SELECT 949, 4, N'徐志旗', N'奖金', 8.0000 UNION ALL
SELECT 947, 4, N'常贵华', N'奖金', 16.0000 UNION ALL
SELECT 951, 4, N'徐志旗', N'提箱费', 50.0000;
declare @a varchar(3000)
set @a='4 '
select @a=@a+employeename+' '+fylx+' '+cast(je as varchar(30))+' ' from tb
print @a
drop table tb
/*
4 徐志旗 奖金 8.00 常贵华 奖金 16.00 徐志旗 提箱费 50.00
*/
-- 示例数据
CREATE TABLE tb(
id int,
orderid int,
employeename nvarchar(10),
fylx nvarchar(10),
je money
);
INSERT tb
SELECT 949, 4, N'徐志旗', N'奖金', 8.0000 UNION ALL
SELECT 947, 4, N'常贵华', N'奖金', 16.0000 UNION ALL
SELECT 951, 4, N'徐志旗', N'提箱费', 50.0000;
-- 查询处理
DECLARE
@s varchar(8000); -- 2005 及之后的版本改为 nvarchar(max)
SET @s = '';
SELECT
@s = @s
--+ ',' + RTRIM(id)
+ ',' + RTRIM(orderid)
+ ',' + QUOTENAME(employeename, '''')
+ ',' + QUOTENAME(fylx, '''')
+ ',' + RTRIM(je)
FROM tb;
SET @s = STUFF(@s, 1, 1, '');
EXEC('SELECT ' + @s);
GO
-- 删除测试数据
DROP TABLE tb;