"SELECT DISTINCT a,b FROM ..."返回的记录少于"SELECT DISTINCT A +'|' + B FROM ......"是因为两个查询语句的结果集不同。
在第一个查询语句中,使用了"SELECT DISTINCT a,b",表示只返回不重复的a和b的组合。这意味着如果有多个记录具有相同的a和b值,只会返回其中的一条记录。
而在第二个查询语句中,使用了"SELECT DISTINCT A +'|' + B",表示返回不重复的A和B的组合,并且将它们拼接成一个字符串。这意味着即使有多个记录具有相同的A和B值,它们拼接后的字符串可能是不同的,因此会返回更多的记录。
举个例子来说明:
假设有以下数据:
a | b | A | B |
---|---|---|---|
1 | 2 | a | b |
1 | 2 | a | b |
1 | 2 | c | d |
对于第一个查询语句"SELECT DISTINCT a,b FROM ...",结果集只会返回一条记录:(1, 2)。
对于第二个查询语句"SELECT DISTINCT A +'|' + B FROM ......",结果集会返回两条记录:"a|b"和"c|d"。
因此,第一个查询语句返回的记录少于第二个查询语句。
领取专属 10元无门槛券
手把手带您无忧上云