首页 > 解决方案 > 带背景颜色的 SQL 结果

问题描述

我正在尝试根据表中现有元素的数量返回具有背景颜色的计数结果。

微软 SQL

DECLARE @cc int
SET @cc = (SELECT COUNT(*) FROM PROBLEMS)

SELECT
CASE WHEN @cc>10 THEN concat("<div style='background-color: red'>",cast (@cc as char),"</div>") 
ELSE concat("<div style='background-color: green'>",cast (@cc as char),"</div>")
END
FROM PROBLEMS

任何想法如何解决我的查询?

标签: sqlsql-serverbackground-color

解决方案


首先,不要使用char没有长度。

其次,您不需要变量。只需运行查询:

SELECT (CASE WHEN COUNT(*) > 10 THEN '<div style=''background-color: red''>'
             ELSE '<div style=''background-color: green''>'
        END) + CAST(COUNT(*) as varchar(255)) + '</div>'
FROM PROBLEMS;

笔记:

  • 单引号用于分隔 SQL 中的字符串,而不是双引号(一些其他数据库确实为此目的支持双引号,但这是一个扩展)。
  • 对于字符串中的单引号,将其加倍''(不是")。
  • 始终使用字符类型的长度。
  • SQL Server 中的连接运算符是+, 虽然concat()也可以。

推荐阅读