如何使网格结果显示“<”而不是“<”?

时间:2011-01-25 20:17:15

标签: sql-server ssms html-entities

此代码:

SomeField + ' <' + cast(count(AnotherField) as varchar(6)) + '>'

在网格视图中生成以下结果:

Blah &lt;Blah2&gt;

如何确保HTML实体显示为其字符等价物?我很惊讶我无法找到谷歌的答案。

感谢。

这是一个更大的片段:

select
   stuff((
      select
         ', ' + SomeField + ' <' + cast(count(AnotherField) as varchar(6)) + '>'
      from
         SomeTable as SomeAbbrev
      where
         SomeField = SomeOutsideField
      group by
         SomeField
      order by
         SomeField asc
      for xml path('')
   ),1,1,'') SomeFields
from
   blablabla
inner join
   blablabla
left join
   blablabla
left join
   blablabla
order by
   SomeDateField asc

2 个答案:

答案 0 :(得分:2)

您可以查看使用的技术here,或者可以更简单地绕过XML技术并尝试类似下面的示例。

此示例返回所有表及其列为逗号分隔字符串的表。

create function dbo.ColumnString(@table_id int)
returns nvarchar(max)
as
begin
    declare @x nvarchar(max)

    select @x = coalesce(@x+',','') + c.name
        from sys.columns c
        where c.object_id = @table_id
        order by c.name

    return @x
end
go

select t.name, dbo.ColumnString(t.object_id)
    from sys.tables t
    where t.type = 'U'
    order by t.name

drop function dbo.ColumnString

答案 1 :(得分:1)

不是一个完美的解决方案,但我的工作......

REPLACE(REPLACE(MyTable.MyColumn, '&lt;', '<'),'&gt;', '>') AS MyColumn

使用UDF替换html代码列表可能是一个更“干净”的解决方案。