SQL如何替换只包含新行的字符串?

时间:2017-03-30 07:54:47

标签: sql sql-server

我的情况是,在某些情况下,我的字段包含几个(多个)新行,而不包含任何其他内容。

我不能用这个:

var TodoItem = (function () {
    function TodoItem(title, completed) {
        this.title = title;
        this.completed = completed;
    }
    return TodoItem;
}());

因为我也有正常的,据我所知,这将取代所有新行。

据我了解,我需要以某种方式检查字符串是否只包含新行,如果是,则将其替换为''。

我该如何实现?

2 个答案:

答案 0 :(得分:1)

解决这个问题的一种方法是使用case,len和trim来确定该列是否包含该特定行中的数据:

SELECT CASE WHEN LEN(
                     LTRIM(
                           RTRIM(
                             REPLACE(
                                     REPLACE(
                                             fielddata, CHAR(13), ''
                                             ), CHAR(10), ''
                                    )
                                )
                          )
                    ) = 0 THEN
           ''
       ELSE
           fielddata
       END as fielddata

答案 1 :(得分:0)

您可以使用CASE表达式,例如

CASE WHEN REPLACE(my_string_column, CHAR(13), '')  = ''
THEN REPLACE(REPLACE(fielddata, CHAR(13), ''), CHAR(10), '')
ELSE my_string_column END AS Computed_Column