0

我有 2 张桌子

Table 1 
col1  col2
----  ----
BLANK  A
D      A
V      A
BLANK  B
D      B
V      B

Table 2 
col1  col2  sex  age
----  ----  ---- ----
A     as     M    45
A     sa     F    32
A     asd    F    45 
B     as     M    45
B     sa     F    32
B     asd    F    45 

我的输出应该按照表 1 的 col1 中的每个值的顺序应该与 Table2 值重复,并且在顺序和第二个表中它应该按性别排序,仅对于女性记录,我们需要对它们进行排序先按年龄。最后输出表应如下所示。

COL1  COL2 COL3 SEX AGE
---- ----- ---- --- ---
BLANK  A   as   M   45
BLANK  A   asd  F   45
BLANK  A   sa   F   32
D      A   as   M   45
D      A   asd  F   45
D      A   sa   F   32
V      A   as   M   45
V      A   asd  F   45
V      A   sa   F   32
BLANK  B   as   M   45
BLANK  B   asd  F   45
BLANK  B   sa   F   32
D      B   as   M   45
D      B   asd  F   45
D      B   sa   F   32
V      B   as   M   45
V      B   asd  F   45
V      B   sa   F   32
4

1 回答 1

0

如果您只希望在没有任何连接条件的情况下为每个值重复行,那么应该这样做(虽然我没有 Sybase 可以测试,但它是相当简单的 SQL);

SELECT t1.col1, t1.col2, t2.col2 AS col3, sex, age
FROM Table1 t1, Table2 t2
ORDER BY t1.col1, sex DESC, age DESC  

一个 SQL Server SQLfiddle 作为示例

编辑:在您编辑问题之后,我假设您想t1.col2与相应的 配对t2.col1,那么这个顺序应该是正确的;

SELECT t1.col1, t1.col2, t2.col2 AS col3, sex, age
FROM Table1 t1
JOIN Table2 t2
  ON t1.col2 = t2.col1
ORDER BY t1.col2, t1.col1, sex DESC, age DESC  

另一个 SQLfiddle

于 2013-09-30T04:40:15.700 回答