如何检查字符串长度,然后在Sql Server中选择子字符串

Cod*_*der 24 sql t-sql sql-server-2008

在视图中,我有一个列注释,可能包含大字符串.我只想选择前60个字符并在所选字符串的末尾添加" ... ".

为了选择前60个字符,我使用了以下查询:

select LEFT(comments, 60) as comments from myview
Run Code Online (Sandbox Code Playgroud)

现在我想要它的处理如下:

  1. 检查它是否包含超过60个字符.
  2. 如果包含然后只选择前6个字符并在末尾添加三个点.
  3. 如果它不包含超过60个字符,则选择整个字符串而不在末尾添加三个点.

谢谢

Joh*_*Woo 41

要有条件地检查字符串的长度,请使用CASE.

SELECT  CASE WHEN LEN(comments) <= 60 
             THEN comments
             ELSE LEFT(comments, 60) + '...'
        END  As Comments
FROM    myView
Run Code Online (Sandbox Code Playgroud)

  • 请记住,在第一种情况下,输出字符串的最大长度为 60,而在第二种情况下为 63! (2认同)