我在SQL Server 2014数据库中有以下示例数据
正如您所看到的,数据的编写方式并不统一,并且采用上述任何格式编写。
我试图只提取姓氏和名字,即xxxx,yyyy
从一些互联网搜索中我发现了以下内容并尝试了它
left(EMP_CLass_9_descr, isnull(nullif(charindex(' :', EMP_CLass_9_descr),0) - 1,8000)) As TM_NAME
这只适用于:
之前有空格的地方我也试过
left(EMP_CLass_9_descr, isnull(nullif(charindex(':', EMP_CLass_9_descr),0) - 1,8000)) As TM_NAME
然后在场景中包含一个空格,它被写为
有没有办法可以写出我只提取xxxx,yyyy?
提前感谢您提供的任何帮助。
答案 0 :(得分:2)
这应该有效:
select ltrim(rtrim(left(EMP_CLass_9_descr,
charindex(':', EMP_CLass_9_descr + ':'
)
)
))
这会查找':'
,但也可以通过在名称的末尾附加冒号来确保有一个cd `dirname $MYPATH`
。然后它修剪返回的值以去除前导和尾随空格。
答案 1 :(得分:1)
Rasmac, 你快到了。试试这个:
Reader r = newReader(csv);
CSVParser csvParser= CSVFormat.TDF.withFirstRecordAsHeader().withQuoteMode(QuoteMode.ALL).parse(r);