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

标签 sql sql-server-2008 tsql

在一个 View 中,我有一列 评论 其中可能包含大字符串。
我只想选择前 60 个字符并附加 ' ... ' 在所选字符串的末尾。

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

select LEFT(comments, 60) as comments from myview

现在我想要它的处理如下:
  • 检查它是否包含超过 60 个字符。
  • 如果包含则仅选择前 6o 个字符并在末尾附加三个点。
  • 如果它不包含超过 60 个字符,则选择整个字符串而不在末尾附加三个点。

  • 谢谢

    最佳答案

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

    SELECT  CASE WHEN LEN(comments) <= 60 
                 THEN comments
                 ELSE LEFT(comments, 60) + '...'
            END  As Comments
    FROM    myView
    
  • SQLFiddle Demo
  • 关于sql - 如何在Sql Server中检查字符串长度然后选择子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091952/

    相关文章:

    sql-server - 我可以在 Visual Studio 数据库项目存储过程中使用 SQLCMD 命令吗?

    tsql - 选择查询以删除非数字字符

    mysql - App Engine 中的 GoLang 动态 SQL 查询

    SQL 多列大于表达式

    c# - 将字符串数组的值插入 SQL 数据库

    sql-server-2008 - SSIS:如何在导入过程中跳过行?

    sql-server - 将计数 SQL 转换为 %

    sql - 有效查询连续天数记录

    php - 将 csv 导入到 mysql 数据库表期间找不到文件

    sql - 在sql中生成随机名称