【发布时间】:2016-03-13 12:57:35
【问题描述】:
我正在尝试仅使用 SQL 语句的 WHERE 子句过滤表以仅显示列的不同值。
下面是一个示例表:
Person ID | Name | City
----------------------------
1 person1 city1
2 person2 city1
3 person3 city2
4 person4 city3
5 person5 city1
我想得到如下输出的不同城市:
City
----
city1
city2
city3
但是,我的应用程序限制我只能指定 WHERE 子句。 所以我被允许的基本格式是这样的:
select city from table1 where __________;
更新:我也尝试过,发现 SELECT 语句占用所有列 (*) 而不是单列,所以我不能使用:
select * from table1 where 1=1 group by city;
【问题讨论】:
-
无法使用 WHERE 获得不同的值。如果应用程序编码错误并允许 SQL 注入,您可以尝试
WHERE 1=1 GROUP BY city -
是否也可以在那里实现 group by 子句? -> 其中 1=1 按城市分组
-
select distinct city from table1您的应用是否也限制了 DISTINCT 关键字? -
@Mihai 再次阅读问题..
标签: sql sql-server