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

SQL如何替换只包含新行的字符串?,sql,sql-server,Sql,Sql Server,我的情况是,在某些情况下,我的字段包含几个(多个)新行,而没有其他内容 我不能用这个: SELECT REPLACE(REPLACE(fielddata, CHAR(13), ''), CHAR(10), '') 因为我也有一个普通的,据我所知,这将取代所有的新线路 据我所知,我需要以某种方式检查字符串是否只包含新行,如果它包含新行,则将它们替换为“” 我怎样才能做到这一点呢?您可以使用CASE这样的表达式 CASE WHEN REPLACE(my_string_column, CHAR(

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

我不能用这个:

  SELECT REPLACE(REPLACE(fielddata, CHAR(13), ''), CHAR(10), '')
因为我也有一个普通的,据我所知,这将取代所有的新线路

据我所知,我需要以某种方式检查字符串是否只包含新行,如果它包含新行,则将它们替换为“”


我怎样才能做到这一点呢?

您可以使用
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

解决此问题的一种方法是使用case、len和trim来确定列在该特定行中是否有数据:

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

这是select语句还是update语句?一些更广泛的背景会帮助你们得到一个更好的答案。我更新了这个问题。它是一个select
my\u string\u column=CHAR(13)
!=<代码>只有新行我有一种强烈的感觉,如果字符串有多个新行,这将不起作用lines@IvanStarostin,是的,是真的,但是现在呢?谢谢你的回答,不幸的是,没有工作。我猜当缺少字符时(10)