gpt4 book ai didi

asp.net - SQL Server 条件选择语句

转载 作者:行者123 更新时间:2023-12-03 03:48:27 25 4
gpt4 key购买 nike

好吧,这可能很简单,但我就是无法理解。

我正在创建一个页面,该页面将查询包含许多列的表,并且大多数项目不是唯一的。我需要能够获取与尽可能多的(最多 4 个)搜索条件匹配的记录列表。

示例:

我是搜索以下项目的用户,我在文本框中输入以下至少一项且最多 4 项:姓名、年龄、性别、体重(用户可以全部填写,也可以不填写)。

如果他只输入性别“F”,那么他将获得数千名女性的列表,其中包含姓名、年龄、性别和体重。

但是,如果他输入“F”表示性别,输入“300”表示体重,他将得到的返回记录列表要小得多。

我需要能够创建一个 sql 语句来使用该功能执行该搜索。

advTHANKSance

最佳答案

我使用类似于下面的方法来完成您正在尝试的操作:

DECLARE @Gender varchar(1)
DECLARE @Age int
DECLARE @Weight int
DECLARE @Name varchar(64)

SELECT * FROM MyTable
WHERE
(@Gender is null OR Gender = @gender)
AND (@weight is null OR Weight = @weight)
AND (@Age is null OR age = @Age)
and (@Name is null OR Name = @Name)

如果您要创建一个存储过程(我推荐),它将如下所示:

CREATE PROCEDURE SelectRecords
@Gender varchar(1),
@Age int,
@Weight int,
@Name varchar(64)
AS
SELECT * FROM MyTable
WHERE
(@Gender is null OR Gender = @gender)
AND (@weight is null OR Weight = @weight)
AND (@Age is null OR age = @Age)
and (@Name is null OR Name = @Name)

此存储过程的作用是检查您是否为特定参数传递了值。如果您没有,那么它将为空并且条件将为真。如果您 DID,则它不会为 null,并且第二个条件必须评估为 true 才能返回记录。

关于asp.net - SQL Server 条件选择语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2285523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com