sql where 动态判断
时间: 2023-11-10 18:05:09 浏览: 32
在 SQL 中,可以使用 WHERE 语句来筛选符合条件的数据。如果需要动态判断条件,可以使用条件语句(IF、CASE)或者参数化查询(Prepared Statement)。
使用条件语句的示例:
```
DECLARE @age INT = 18;
SELECT * FROM students
WHERE
IF @age > 0 AND @age < 18 THEN age < 18
ELSE IF @age >= 18 AND @age <= 30 THEN age >= 18 AND age <= 30
ELSE IF @age > 30 THEN age > 30
END IF
```
使用参数化查询的示例:
```
DECLARE @age INT = 18;
SELECT * FROM students
WHERE age BETWEEN @min_age AND @max_age;
SET @min_age = CASE
WHEN @age > 0 AND @age < 18 THEN 0
WHEN @age >= 18 AND @age <= 30 THEN 18
ELSE 30
END;
SET @max_age = CASE
WHEN @age > 0 AND @age < 18 THEN 18
WHEN @age >= 18 AND @age <= 30 THEN 30
ELSE 100
END;
```
以上示例仅供参考,具体实现方式还需根据具体情况进行调整。