从字符串返回第一行

时间:2011-03-17 07:41:47

标签: sql-server-2005

我有一个包含三行的字符串,我可以从sqlserver中的字符串中检索第一行。

外汇:

declare @Str as nvarchar(200)

Set @Str='This is for test'+char(10)+
         ' second line'+char(10)+
         'Third line'

insert into some test table.

我如何从中检索第一行。

3 个答案:

答案 0 :(得分:2)

SELECT SUBSTRING(@Str,0,CHARINDEX(char(10),@Str))

编辑:如果您还有只有一行的文字,则可以使用CASE:

SELECT CASE WHEN CHARINDEX(char(10),@Str)=0 THEN @Str
   ELSE SUBSTRING(@Str,0,CHARINDEX(char(10),@Str)) END

答案 1 :(得分:1)

至少从Postgres 9.0起:

SELECT split_part(some_column, E'\n', 1) from some_table

注意:需要E才能将文字转义为line break

答案 2 :(得分:0)

试试这个:

select Note_Sets.cNoteCode,
    SUBSTRING(Note_Sets.cScript,1,CHARINDEX(char(10),Note_Sets.cScript)) as cFirstLine
from dbo.Note_Sets

可以使用char(10)或char(13)。