gpt4 book ai didi

asp.net - SQL LIKE % 对于整数

转载 作者:行者123 更新时间:2023-12-02 17:11:04 25 4
gpt4 key购买 nike

在 T-SQL 中,如何编写查询来为列的任何整数值选择行?

比如数据是这样的

NAME,AGE
A,10
B,20
C,10
D,20

还有一个 <asp:dropdownlist>有两个选项,10,20 ,以便用户可以选择 1020 。如果用户选择1020 ,数据被正确拉取,但是我怎么说*健康)状况?? - 就像为 age 中的任何值选择所有数据专栏??

我的代码如下,

select ...where (AGE = @AGE)

<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="AGE" PropertyName="SelectedValue"
DbType="Int32" DefaultValue="ANY"

此外,下面的查询在 SSMS 中工作得很好,但是如何在 asp.net SqlDataSource 中实现此行为??

SELECT * FROM [TABLE] where AGE is not null

如果 AGE 列是 varchar 类型,我可以使用“%”,但它是一个数字字段

谢谢

最佳答案

要提供 ALL/ANY 选项,您需要指定一个哨兵值(一个永远不会存在于数据集中的值),以便您可以检查提交给存储过程的变量,以便知道何时忽略该值变量并使用正确的 WHERE 子句。

IE:如果下拉列表中有一个元素的显示文本为“全部”,且值为-1,则以下动态 SQL 将是合适的:

DECLARE @SQL NVARCHAR(MAX)

SET @SQL = N'SELECT *
FROM [YOUR_TABLE]
WHERE 1 = 1 '

SET @SQL = @SQL + CASE
WHEN @age > 0 THEN
' AND age = @age '
ELSE
' AND age IS NOT NULL '
END

BEGIN

EXEC sp_executesql @SQL N'age INT', @age

END

参见this link for more details about dynamic SQL in TSQL/SQL Server .

但是您不必使用动态 SQL - 这是等效的:

IF @age > 0 
BEGIN

SELECT *
FROM [YOUR_TABLE]
WHERE age IS NOT NULL

END
ELSE
BEGIN

SELECT *
FROM [YOUR_TABLE]
WHERE age = @age

END

...只是您可以想象,如果您有多个彼此独立的参数,这会变得多么笨拙。

关于asp.net - SQL LIKE % 对于整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066251/

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