【发布时间】:2019-05-29 04:58:01
【问题描述】:
我尝试将以下 SQL 语句拆分为列:
select
count(rtnotes.keyno) as value,
ent.company as label,
'j-ChartDrillDown-406,'+CAST(ENT.ENTID AS CHAR(10)) AS link,
dateadd(week, datediff(wk, 0, dateadd(wk,-5,getdate())), -1) as test
...
我希望在 select 语句中将其拆分为 4 列:
count(rtnotes.keyno) as valueent.company as label'j-ChartDrillDown-406,'+CAST(ENT.ENTID AS CHAR(10)) AS linkdateadd(week, datediff(wk, 0, dateadd(wk,-5,getdate())), -1) as test
我已经能够使用逗号分隔,不在引号内:
,(?=(?:[^']*'[^']*')*[^']*$)
但我还需要忽略括号内的逗号(在这种情况下,由于 dateadd 和 datediff 导致嵌套括号)
【问题讨论】:
-
老实说,即使有人(例如 Wiktor)可以提供一个应该可以工作的正则表达式,如果您长期需要这样做,您可能想硬着头皮写一个基本的 SQL 解析器.至少,这个解析器可以处理 SQL 查询的
SELECT部分。 -
您使用的是哪个 dbms?
-
看起来您已经将这些内容分成 4 列。你到底想在这里做什么?您能否提供示例源数据以及您的期望是什么?