Sorting 在经典asp中,如何按字母顺序显示下拉选项而不必担心区分大小写?
在我的经典ASP页面中有一个下拉框,并使用MS SQL作为数据库。下拉列表包括以小写字母开头的品牌名称、以大写字母开头的品牌名称和以数字开头的品牌名称 例如,iT化妆品、Colorpop化妆品和5小时能量。目前,此下拉列表按字母顺序显示/显示品牌,但按大小写,即小写、数字、大写 换言之,它首先按字母顺序显示所有小写的品牌名称,然后按字母顺序显示带有数字的品牌名称,最后按字母顺序显示以大写字母开头的品牌名称 然而,我正在尝试的是:我希望按照字母顺序显示我的选项,而不必担心品牌名称的情况 例如:如果品牌名称是1个苹果、applea、Appleb、3个粉丝、balla、Ballb、cat、Doll 目前,其显示下拉选项如下: applea balla cat 1 apple 3 fans Appleb Ballb Doll 1 apple 3 fans applea Appleb balla Ballb cat Doll 但我想要如下的东西: applea balla cat 1 apple 3 fans Appleb Ballb Doll 1 apple 3 fans applea Appleb balla Ballb cat Doll 我该怎么做 我的代码:Sorting 在经典asp中,如何按字母顺序显示下拉选项而不必担心区分大小写?,sorting,vbscript,asp-classic,Sorting,Vbscript,Asp Classic,在我的经典ASP页面中有一个下拉框,并使用MS SQL作为数据库。下拉列表包括以小写字母开头的品牌名称、以大写字母开头的品牌名称和以数字开头的品牌名称 例如,iT化妆品、Colorpop化妆品和5小时能量。目前,此下拉列表按字母顺序显示/显示品牌,但按大小写,即小写、数字、大写 换言之,它首先按字母顺序显示所有小写的品牌名称,然后按字母顺序显示带有数字的品牌名称,最后按字母顺序显示以大写字母开头的品牌名称 然而,我正在尝试的是:我希望按照字母顺序显示我的选项,而不必担心品牌名称的情况 例如:如果
<select>
<OPTION value=0>-- SELECT --</OPTION>
<%
DIM RS, varQueryBrand, varBrand
IF Request.QueryString("brandID") <> "" THEN
varQueryBrand = Request.QueryString("brandID")
ELSE
varQueryBrand = "SELECT"
End IF
SQL = "SELECT DISTINCT(brand) as brand FROM tblproduct"
SET RS=objConn.Execute(SQL)
IF NOT (RS.BOF and RS.EOF) THEN
WHILE NOT RS.EOF
varBrand = RS("brand")
IF LCase(varQueryBrand) = LCase(varBrand) THEN
Response.Write "<option selected value=""" & replace(RS("brand")," & ","@") & """>" & RS("brand") & "</option>"
ELSE
Response.Write "<option value=""" & replace(RS("brand")," & ","@") & """>" & RS("brand") & "</option>"
End IF
RS.MoveNext
WEND
END IF
RS.close
SET RS = nothing
%>
</select>
我尝试在SQL语句末尾按品牌编写订单,但输出中没有任何变化。那么,您能帮助我吗?从外观上看,您目前根本没有对结果进行排序,因此您得到的是SQL Server想要的任何默认顺序 大多数数据库都会自动设置为不区分大小写的排序,因此,除非您的数据库设置得很奇怪,否则以下操作应该可以正常工作:
SQL = "SELECT DISTINCT brand FROM tblproduct ORDER BY brand"
如果这不起作用,并且您不想乱搞排序规则设置,您可以按字段的全小写或全大写版本进行排序:
SQL = "SELECT DISTINCT brand FROM tblproduct ORDER BY LOWER(brand)"
您可能会使用带有CS名称的排序规则,例如Latin1_General_CS_ 要避免Unicode排序,请切换到二进制排序规则以获得预期的排序顺序 选择独特的品牌 来自tblproduct 按品牌排序核对拉丁1\u一般\u bin 一种稍微混乱的方法是使用子查询来包装Brand列的小写版本,并使用它进行排序 选择x品牌 从…起 选择不同的品牌,较低品牌[品牌较低] 来自tblproduct x x.brand_下单 在经典ASP中,不要忘记在SQL字符串中指定ORDER BY 有用的链接
洛伯兰ASC的订单怎么样?这并不理想,尽管我可能会将其包装在子查询中拉出LOWERbrand[brand_low],然后在子查询之外按[brand_low]排序。这可能有助于您更好地理解-,建议使用二进制排序可能是您所追求的-按brand COLLATE Latin 1_General_bin排序。当我尝试您提到的第一个选项时,它什么也没做。i、 e.我的产出没有变化。对于第二个选项,它隐藏除选择默认选项之外的所有下拉选项。另外,我正在寻找混合的大小写,不仅仅是小写字母1和大写字母。@VicStat:您可以尝试在数据库管理器本身Enterprise manager或SQL Server Management Studio中运行此查询,或者在您的SQL Server版本中运行此查询吗?不返回结果意味着发生了某种错误。