【发布时间】:2015-04-28 20:06:06
【问题描述】:
nvarchar(100) 字段包含更多行的信息,因为每一行都有不同的信息(不知何故,每个行号都有一个含义:第一行是名称,第二行是姓氏,...)我想查询字段并有四个字段作为结果。我想使用单个 select 语句来执行此操作(即使在后台它也使用函数或视图)。
我尝试使用charindex 和replace,但我无法完成一个查询。
以某种方式查询
select MULTILINEFIELD from TABLE
返回:
'John
Doe
34
Male'
我想把它变成
SELECT FIRSTNAME, LASTNAME, AGE, GENDER FROM SOMETHING
在我的例子中,“换行符”是char(10) + char(13),我已经用这个去掉了换行符:
选择
REPLACE( REPLACE(MULTILINEFIELD , char(10), '') , char(13), '@')
from TABLE
给了
John@Doe@34@Male
我使用 '@' 作为一个字符,我肯定不会在数据库中找到它。
我希望我表达了自己。
【问题讨论】:
-
之后可以使用split函数用分隔符“@”进行分割。就这样。
-
你是指自己拆分还是使用特定的
split函数? -
大多数拆分函数返回一个每个值一行的表; OP 想要每个值一列。用户,请发布您尝试的 charindex 查询以及从中获得的任何错误或不正确的值。正确使用 CHARINDEX 和 SUBSTRING 可以得到你想要的结果。
标签: sql-server select sql-server-2008-r2