SQL语句里面对一列数据去重应该怎么搞?

2025-03-11 06:53:05
推荐回答(3个)
回答1:

将TT表替换成你的查询语句。
另外你得保证,检查部位中都是以空格为分隔符的。
还有,对于第20行数据的胸部正位片,实在是没办法,你最好修剪下数据。
SELECT SUBSTR (LTRIM (检查部位, ' '), idx1, idx2 - idx1)
FROM (SELECT 检查部位, NVL (LAG (idx) OVER (ORDER BY ROWNUM) + 1, 1) idx1,
idx idx2
FROM (SELECT DISTINCT 检查部位, idx
FROM (SELECT 检查部位,
DECODE
(INSTR (LTRIM (检查部位, ' '),
' ',
ROWNUM
),
0, LENGTH (LTRIM (检查部位,
' '
)
)
+ 1,
INSTR (LTRIM (检查部位, ' '),
' ',
ROWNUM
)
) idx
FROM tt
CONNECT BY ROWNUM <=
LENGTH (LTRIM (检查部位, ' ')))
ORDER BY idx))

回答2:

用“如胸部正位56,颈椎正侧45”做条件,来select他们的counter,并且加上Unique限制,具体参考counter和Unique的语法。

好久没有用sql,只记得这些。

回答3:

没有明白你的意思!请说明详细点。