我有一张桌子T,上面有A,B,C和C列。 D如下:
A B C D
===============
A1 B1 USD LIBOR
A1 B2 JPY FIXED
A2 B3 USD LIBOR
A2 B4 EUR FIXED
A3 B5 JPY FIXED
A3 B6 USD LIBOR
表每个“A”总有2行,不同的值为“B”。
“B”是独一无二的
“A” - varchar(10),“B” - varchar(8),“C” - varchar(3),“D” - varchar(5)
验证规则将列限制为以下格式 - “A”,“B”,“D” - 字母数字 “C” - 字母
我需要从表中提取以下结果 -
结果集1:
A1 USD LIBOR JPY FIXED
A2 USD LIBOR EUR FIXED
A3 JPY FIXED USD LIBOR
结果集2:
USD LIBOR JPY FIXED
USD IBOR EUR FIXED
我希望避免使用游标,除非有任何其他解决方案。
我可以将此表提取到文件中并使用perl来获取结果吗?
请帮忙......
答案 0 :(得分:3)
可以使用临时表和多个更新来完成,但我认为在你的百万行表中不会很好。
如果您的数据总是每个“A”有2行,具有不同的“B”值并且具有可预测的大小(列宽)或格式(因此您可以使用特殊的熟食店)那么这样的东西可能会起作用
SELECT
A,
MIN(B),
MAX(B),
right( MIN(B + C), 5),
right( MIN(B + D), 5),
right( MAX(B + C), 5),
right(MAX(B + D), 5)
FROM my_table
GROUP BY A