如何用高效代码替换以下case语句
SELECT
CASE WHEN LEN(Code.Description)>=30
THEN left(Code.Description, 30) + '...'
ELSE NominalCode.Description END AS ShortDescription
FROM Code
因为它返回的数据集将是30-50,000条记录,根据主要开发人员的说法,这段代码很荒谬。我需要帮助
答案 0 :(得分:1)
据推测,你打算:
SELECT (CASE WHEN LEN(c.Description) > 30
THEN left(c.Description, 30) + '...'
ELSE c.Description
END) AS ShortDescription
FROM Code c;
也就是说,Description
列引用都来自同一个表。你的代码很好。
但是,我会调整语义,以便生成的字符串始终具有相同的长度:
SELECT (CASE WHEN LEN(c.Description) > 30
THEN LEFT(c.Description, 27) + '...'
ELSE c.Description
END) AS ShortDescription
FROM Code c;
答案 1 :(得分:1)