2

我有一个查询。我有两列国家和州的表格。我想以下列格式显示列

Country       State            
----------- ---------
India        Delhi
             Bangalore   
             Kolkata
             Mumbai


USA          California
             Florida
             Las Vegas
             Virginia

这意味着“印度”只在国家列中出现一次,当我从表中选择国家和州时,重复值将在国家列中作为空白值出现。

提前致谢

4

2 回答 2

1

演示通常在 SQL 之外完成(如果不是总是更好),所以我建议在您运行的任何演示层中执行此操作,但如果它是查询的要求,您可以使用会话变量来执行此操作;

SELECT Country, State FROM (
  SELECT IF(Country=@country, '', Country) Country, State, @country := Country
  FROM (SELECT Country, State FROM Table1 ORDER BY Country, State) dummy1, 
       (SELECT @country:='') dummy2
) dummy3;

一个用于测试的 SQLfiddle

只是为了展示一种(可能)更好的方法,您可以使用它来获取每个国家/地区的州列表,并在您的表示层中进一步处理它;

SELECT Country, GROUP_CONCAT(State) FROM Table1 GROUP BY Country;

另一个 SQLfiddle

于 2013-06-26T12:20:05.630 回答
-2

使用 pl/sql。此外,您的表将违反第 5 范式。

于 2013-06-26T12:12:11.160 回答