如何编写SQL语句?

邢柏 2018-08-20 02:36:47
表名为noteevents,列名为text,行的内容为心脏彩超结果“The left atrium is moderately dilated. Left ventricular wall
thickness, cavity size and regional/global systolic function are
normal (LVEF 70%) The right ventricular free wall is
hypertrophied. ” 我想从每一行中提取LVEF结果例如上段中的“70”并命名为“LVEF”,像这种SQL语句如何编写?谢谢!
...全文
247 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
邢柏 2018-08-20
  • 打赏
  • 举报
回复
好的,谢谢您的回复
二月十六 2018-08-20
  • 打赏
  • 举报
回复
引用 6 楼 weixin_42220070 的回复:

这个是mssql的写法,建议楼主到对应版块问问
邢柏 2018-08-20
  • 打赏
  • 举报
回复
邢柏 2018-08-20
  • 打赏
  • 举报
回复
谢谢二楼的回复,我试一下
邢柏 2018-08-20
  • 打赏
  • 举报
回复
postgresql9.6,通过navicat操作,谢谢
吉普赛的歌 2018-08-20
  • 打赏
  • 举报
回复
你用的什么数据库?
具体什么版本?
邢柏 2018-08-20
  • 打赏
  • 举报
回复
select
cast(substr(ne.text,regexp_instr(ne.text,'[[:digit:]]{2}\%')-1,4) as numeric)
EF
from noteevents ne;
[Err] 错误: 函数 regexp_instr(text, unknown) 不存在
LINE 2: , cast(substr(ne.text,regexp_instr(ne.text,'[[:digit:]]{2}\%...
^
HINT: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.
二月十六 2018-08-20
  • 打赏
  • 举报
回复
如果都有规律可以这样试试
--测试数据
if not object_id(N'Tempdb..#noteevents') is null
drop table #noteevents
Go
Create table #noteevents([text] nvarchar(38))
Insert #noteevents
select N'normal (LVEF 70%) The' UNION
select N'normal (LVEF 50%) The'
Go
--测试数据结束
SELECT
text,
SUBSTRING(
text, CHARINDEX('(LVEF', text) + LEN('(LVEF') + 1,
CHARINDEX('%)', text) - CHARINDEX('(LVEF', text) - LEN('(LVEF') - 1
) AS LVEF
FROM
#noteevents;


22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧