在SQL Server中,如何强制将值排序显示在某些逻辑中。据我所知,SQL在排序值时首先放置字符,然后输入数字,然后输出字母。
现在,我需要在信后面加下划线。例如,
我的值为OA_G
,范围介于MRI
和OL5
目前,SQL将OA_G
放在范围之间。但我需要强迫它超出范围。
答案 0 :(得分:3)
你的前提似乎不正确。无论SQL Server如何对字符串数据进行排序,顺便说一句,这是由数据库的排序规则控制的,如果要对其进行手动排序,则无法实现您所寻求的结果。即:
鉴于三个字符串," MRI"," OL5"和" OA_G",按字符串值按升序排序。
当然,这将逐个字符地进行,从左到右比较每个字符。
自" M"在" O"之前,排序集的第一个成员将是" MRI"。接下来,比较" OL5"和" OA_G"。这封信" O"是一样的,所以检查下一个位置。 " L"大于" A"因为它是字母表中的第11个字符," A"是第一个,所以下一个成员将是" OA_G",留下" OL5"作为最后的成员。
没有SQL Server整理顺序可以使此评估为您提供您正在寻找的结果。
答案 1 :(得分:0)
如果数据的部分类似于MRI
,OL5
,OA_G
等,是常量或很少更改,您可以制作一些表格,如
Part | Priority
MRI | 1
OL5 | 2
OA_G | 3
将其加入您的表格并ORDER BY Priority