Welcome to WebmasterWorld Guest from 22.214.171.124
HTML's fragment identifier (text after the "#") is used by a Web browser to navigate to part of a document. It is not sent by user agents (e.g. browsers and search engines), so there is no difference between /foo.html, /foo.html#1 and /foo.html#2 in Google.
CGI's QUERY_STRING is sent from he user agent to the Web server, so there is a difference between /foo.html, /foo.html?1 and /foo.html?2 in Google.