微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 我需要拆分一系列’varchar’响应,以便在创建DataTable时它显示为新行?

我需要做的是将响应从存储在数据库中的在线调查表中获取,并将其显示为网站上的表格,到目前为止我已经完成了,它看起来像这样:

||User Id |Group   | Q1                 | Q2            | Q3    | Q4   |...
    | 1234    |no group| 30/06/14,25/08/14,| gs,gm,cl&h   | either|s1    |...
    |         |        | 27/07/14           |               |       |      |...

我现在需要以新的方式显示现有数据.需要拆分单元中的信息,以便在单元中存在多个信息位的情况下,创建新行.不确定描述它的最佳方式,但以上面的例子为例,我需要它看起来像这样:

||User Id |Group   | Q1      | Q2   | Q3    | Q4   |...
| 1234    |no group| 30/06/14| gs   | either|s1    |...
| 1234    |no group| 25/08/14| gm   | either|s1    |...
| 1234    |no group| 27/07/14| cl&h | either|s1    |...

基本上,每行使用相同的UserID,Group等,但每个Q1,Q2等不同.

这是我到目前为止用于实现顶级示例的代码.

'
' sql to get data
    sql = "select * from TABLE where (datestamp > '" & startDate & "') AND (datestamp < '" & endDate & "') ORDER BY datestamp"

Set fieldTitles = CreateObject("Scripting.Dictionary")
fieldTitles.Add "userID","User ID"
fieldTitles.Add "grp","Group"
fieldTitles.Add "q1","Q1"
fieldTitles.Add "q2","Q2"
fieldTitles.Add "q3","Q3"
fieldTitles.Add "q4","Q4"
fieldTitles.Add "q5","Q5"
fieldTitles.Add "q6","Q6"
fieldTitles.Add "q7","Q7"
fieldTitles.Add "q8","Q8"
fieldTitles.Add "q9","Q9"
fieldTitles.Add "qOrder1","qOrder1"
fieldTitles.Add "qOrder2","qOrder2"
fieldTitles.Add "qOrder3","qOrder3"
fieldTitles.Add "qOrder4","qOrder4"
fieldTitles.Add "datestamp","Date Stamp"
fieldTitles.Add "Qid","Qid"
fieldTitles.add "y5grp","Year 5 Group"

' get the table html
dataString = createDataTablesql(fieldTitles,sql,"")

我一直试图想出一种方法,使用’Left(string,length)’来删除开始文本并复制行,但如果字符串长度不同(如Q2),我不能一直这样做.任何人都能指出我正确的方向吗?

解决方法

纯粹是为了向您展示方法,这可以满足您的需求,不确定我是否同意以正确的方式存储数据,但希望这有助于

SELECT
disTINCT ROWID,trim(
regexp_substr(Q2,'[^,]+',1,LEVEL)
) decoded
FROM
(
select
'1234' as USER_ID,'NO GROUP' as "GROUP",'30/06/14,27/07/14' as Q1,'qs,cl&h' as Q2,'either' as Q3,'s1' as Q4
from
dual
) X CONNECT BY trim(
regexp_substr(Q2,LEVEL)
) IS NOT NULL
ORDER BY
ROWID;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐