如何过滤SQL Server列数据过滤器就像所有从a或A开头的单词都出现在第一行一样,就像B或b出现在第二行一样。
Create Table Table_my
(
C1 varchar(50)
, C2 varchar(50)
,
)
Select*
From Table_my
WHERE C1 Like '[ABC]%';
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在SQL Server中,如果你想根据字母顺序对数据进行分组并过滤出以特定字母开头的单词,你可以结合使用ORDER BY
语句和LIKE
操作符。但是,直接像你所描述的那样按行分组显示(A/a开头的在第一行,B/b开头的在第二行等)并不符合SQL查询的标准结果集格式,因为SQL查询结果是以列和行的形式返回一个表格数据。
如果你的目标是筛选出以特定字母(如A/a, B/b)开头的数据,并且想让它们按照字母顺序排列,你可以这样做:
SELECT *
FROM Table_my
WHERE C1 LIKE 'A%' OR C1 LIKE 'a%'
UNION ALL
SELECT *
FROM Table_my
WHERE C2 LIKE 'B%' OR C2 LIKE 'b%'
ORDER BY
CASE
WHEN C1 LIKE 'A%' OR C1 LIKE 'a%' THEN 1
WHEN C1 LIKE 'B%' OR C1 LIKE 'b%' THEN 2
ELSE 3
END,
C1, C2;
这个查询首先会筛选出C1或C2列中以A/a或B/b开头的所有行,然后使用UNION ALL
将两部分结果合并,最后通过ORDER BY
子句首先按照字母类别排序(A/a在前,B/b随后),再在每个类别内部按照C1和C2的自然顺序排序。
但请注意,这仍然会返回一个标准的结果集,而不是你说的“第一行所有A/a开头,第二行所有B/b开头”的非标准展示形式。如果需要特定的展示逻辑,可能需要在应用程序层面处理查询结果。