sql - 合并来自表单相同部分的列
问题描述
我的任务是找出可以从填写的表格中输出到 excel 的内容。我想做的是为每个表单制作一行,但问题是表单在数据库中的输入方式。这是当我尝试从以下形式之一的部分(现病史)输出所有列时数据库的外观:https ://imgur.com/a/QKf2XHY它看起来像是包含其他编程语言除了sql。这是表格最初填写时的样子:https ://imgur.com/a/hBRPqDE
现在,我尝试使用以前在此处的另一个用户的帮助下使用的先前代码将要格式化的文本列转换为 varchar,但在这种情况下它无法正常工作。
SET ANSI_WARNINGS ON
Select A.IDEncounter_Note
,FormatMessage = ltrim(rtrim(replace(replace(replace(TxtOnly,' ','†‡'),'‡†',''),'†‡',' ')))
From Encounter_Note A
Cross Apply ( values ( --replace(
replace(
replace(
replace(
replace(
replace('<div>'+CONVERT(VARCHAR(MAX),Text)+'</div>'
,char(13),' ')
,char(10),' ')
,'&'+'nbsp;',' ')
,'&'+'amp;','&')
,'&'+'rsquo;','''')
--,'<o:p></o:p>','')-- May want to add items like — as - and ™ as TM etc...
)
) B(CleanString)
Cross Apply (
Select TxtOnly = stuff((Select ' ' +RetVal
From (
Select RetSeq
,RetVal = left(RetVal,charindex('<',RetVal+RetVal)-1)
From (
Select RetSeq = row_number() over (order by 1/0)
,RetVal = ltrim(rtrim(B.i.value('(./text())[1]', 'varchar(max)')))
From ( values (cast('<x>' + replace((Select replace(CleanString,'>','§§Split§§') as [*] For XML Path('')),'§§Split§§','</x><x>')+'</x>' as xml).query('.'))) as A(x)
Cross Apply x.nodes('x') AS B(i)
) C1
Where charindex('<',RetVal)>1
) C2
Order By RetSeq
For XML Path(''),TYPE).value('(./text())[1]','varchar(max)')
,1,1,'')
) C
WHERE EncounterID = 89617
我现在要做的是为表格的每个部分制作一列。例如,主要投诉是一列,而当前列的历史是另一列(所以我必须结合第一个 imgur 中的“文本”列)。
解决方案
推荐阅读
- spring-mvc - EL1007E: 在 null 上找不到属性或字段“fieldName”
- node-red - node-red 拆分、重新排序和连接输出字符串
- python - Python - 在 != 中使用多个单词
- go - 致命错误:所有 goroutine 都处于休眠状态 - 死锁!当通道没有缓冲时
- r - 如何根据 r 中元素的第一个数字保留行?
- scala - 方法覆盖、继承和对象
- r - 模型包含多项式时的新预测
- android - 我在地方自动完成片段中收到错误 13
- python - Elastic Beanstalk Flask 应用程序 - 未找到静态文件
- python - 熊猫合并单个数据框内的行