gpt4 book ai didi

sql-server - 将 LIKE 运算符与存储过程参数结合使用

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

我有一个存储过程,它使用 LIKE 运算符在一些其他参数中搜索卡车位置

   @location nchar(20),
@time time,
@date date
AS
select
DonationsTruck.VechileId, Phone, Location, [Date], [Time]
from
Vechile, DonationsTruck
where
Vechile.VechileId = DonationsTruck.VechileId
and (((Location like '%'+@location+'%') or (Location like '%'+@location) or (Location like @location+'%') ) or [Date]=@date or [Time] = @time)

我将其他参数清空并仅按位置搜索,但即使我使用位置的全名,它也始终不返回任何结果

最佳答案

@location nchar(20) 的数据类型应为 @location nvarchar(20),因为 nChar 具有固定长度(用空格填充)。
如果 Location 也是 nchar,则必须将其转换:

 ... Cast(Location as nVarchar(200)) like '%'+@location+'%' ...   

要使用 AND 条件启用可空参数,只需使用 IsNull 或 Coalesce 进行比较,这在使用 OR 的示例中不需要。

例如如果您想比较位置以及日期和时间。

@location nchar(20),
@time time,
@date date
as
select DonationsTruck.VechileId, Phone, Location, [Date], [Time]
from Vechile, DonationsTruck
where Vechile.VechileId = DonationsTruck.VechileId
and (((Location like '%'+IsNull(@location,Location)+'%')) and [Date]=IsNUll(@date,date) and [Time] = IsNull(@time,Time))

关于sql-server - 将 LIKE 运算符与存储过程参数结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16380196/

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