【发布时间】:2023-03-30 14:21:01
【问题描述】:
我想替换括号中的单词以放入引号中。 我的previous question 在括号中有一个值。这个问题和我之前的问题一样,但是想到了一个场景,我将在括号中包含多个值。
以下是我在其中一个可变数据中的数据-
SELECT *
FROM (
SELECT table1 file2.txt file.txt queues qdefinitions parameters trap-deposit-dstran.dat.2016-08-07
FROM cs_case
WHERE ant_cd='FI_BASE_TENANT') t1
LEFT OUTER JOIN table2 t2
ON t2.case_id=t1.case_id
LEFT OUTER JOIN table3 t3
ON t3.service_xid=t1.service_xid
LEFT OUTER JOIN table4 t4
ON t4.service_id=t1.service_id
WHERE (
t1.casestatus_cd = (new,retired,pending,OPEN,closed)
OR t1.case_status_num = (1,2,3,4) )
GROUP BY t1.case_reference,
t2.last_scrfp,
t1.service_id
ORDER BY t2.last_scrfp DESC
这就是我想要的。
SELECT *
FROM (
SELECT table1 file2.txt file.txt queues qdefinitions parameters trap-deposit-dstran.dat.2016-08-07
FROM cs_case
WHERE ant_cd='FI_BASE_TENANT') t1
LEFT OUTER JOIN table2 t2
ON t2.case_id=t1.case_id
LEFT OUTER JOIN table3 t3
ON t3.service_xid=t1.service_xid
LEFT OUTER JOIN table4 t4
ON t4.service_id=t1.service_id
WHERE (
t1.casestatus_cd = ('NEW','RETIRED','PENDING','OPEN','CLOSED')
or t1.case_status_num = (1,2,3,4) )
GROUP BY t1.case_reference,
t2.last_scrfp,
t1.service_id
ORDER BY t2.last_scrfp DESC
之前我使用过如下的 sed 命令
sed -E 's/\(([^(,$1)'\'']+)\)/('\''\1'\'')/g' Filename.txt
【问题讨论】:
-
嗨尼克,如前所述,您应该在问题中使用markup 以使事情更清楚。上次我为您设置了格式,但我认为您至少应该了解是否要发布多个问题。
-
您应该解释为什么这个问题与您的last one 不同。在我看到 Ed Morton's comment 建议你提出一个新问题之前,我打算投票结束。
-
我的上一个问题在括号中有一个值。 Ed Morton 评论了一个我稍作修改的命令。这与我之前的问题相同,但想到了一个场景,我将在括号中包含多个值。我正在尝试在 SAS 中自动化该过程,我将在其中运行 unix 命令以使用 sed 命令替换查询。希望这是有道理的。
-
@Nick 请edit 将该信息放入您的问题中。
-
您正在修改的这段文字的来源是什么?为什么文本需要插入引号?这是一次性的事情还是你有很多这些无效的文本文件?此外,您的示例 SQL 无效,因为您不能使用
=测试值是否在列表中,需要使用 IN 运算符。t1.case_status_num IN (1,2,3,4)