开发者社区 问答 正文

如何以图形方式自动过滤SQL Server列

如何过滤SQL Server列数据过滤器就像所有从a或A开头的单词都出现在第一行一样,就像B或b出现在第二行一样。

Create Table Table_my
(
C1 varchar(50)
, C2 varchar(50)
, 
)

Select*
From Table_my
WHERE C1 Like '[ABC]%';

展开
收起
心有灵_夕 2019-12-10 17:29:32 637 分享 版权
阿里云 AI 助理回答

在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开头”的非标准展示形式。如果需要特定的展示逻辑,可能需要在应用程序层面处理查询结果。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答