当我尝试select
两列时,我在SQL Server中遇到问题。
这是我编写的代码:
declare @d varchar(max)
set @d = ''
begin
select @d = @d + convert(nvarchar(MAX), R.Data, 121) + ('<table></td><td>' + convert(nvarchar(MAX), C.No) + '</td><td>' + C.Nome + '</td><td>' + convert(nvarchar(MAX), V.IdVendedor) + '</td><td>' + convert(nvarchar(MAX), V.Vendnm) + '</td></tr></table>')
from dbo.Reclamacoes R
Inner Join dbo.PHC_CLIENTES_SAMSYS C On R.IdCliente = C.Id
Inner Join dbo.PHC_VENDEDORES_SAMSYS V on R.IdVendedor = V.IdVendedor
select @d As Data, @d As HTML_COLUMN
end
它显示如下:
2019-02-07 00:00:00.0000000 " <table></td><td>2762.00</td><td>REGINA & MIGUEL, LDA. ( REMI )</td><td>78.00</td><td>AndreiaVeloso</td></tr></table> "
如您所见,数据与应该在另一列中显示的内容混合在一起(我在“”中输入了应该在另一列中显示的内容)。
当我执行该列时,将“ Data”与“ HTML_COLUMN”混合在一起。 而且我正在尝试仅使用一个变量来获取两列。
有人可以告诉我,如果只有一个变量,是否可以让查询显示两列?预先感谢。
答案 0 :(得分:0)
您可以将@d
设为Table Variable,并在其中放置两列。
来自MSDN的示例:
DECLARE @MyTableVar table(
EmpID int NOT NULL,
OldVacationHours int,
NewVacationHours int,
ModifiedDate datetime);
答案 1 :(得分:0)
尝试一下。
DECLARE @HTML NVARCHAR(MAX) = '';
SET @HTML
= N'<table border="1" >'
+ N'<tr><th>Data</th><th>Nome</th><th>IdVendedor</th><th>Vendnm</th>'
+ CAST((
SELECT
td = R.Data
, ''
, td = C.Nome
, ''
, td = V.IdVendedor
, ''
, td = V.Vendnm
FROM dbo.Reclamacoes R
INNER JOIN dbo.PHC_CLIENTES_SAMSYS C ON R.IdCliente = C.Id
INNER JOIN dbo.PHC_VENDEDORES_SAMSYS V ON R.IdVendedor = V.IdVendedor
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX)) + N'</table>';
SELECT @HTML;