gpt4 book ai didi

mysql - SQL Server SELECT 以 Parameter 开头的行

转载 作者:行者123 更新时间:2023-11-29 12:52:08 25 4
gpt4 key购买 nike

我有一个表,其中包含名为 NUMBERS 的列,该列的值为 1234、1235、1278、4567、5434 和 7890。我正在尝试编写一个过程来选择以数字 @NUMBER 开头的所有值。我想它会是这样的:

 DECLARE @NUMBER as int 
SET @NUMBER = 1
SELECT * FROM table1 WHERE [NUMBER] LIKE (@NUMBER + '%')

但这给了我一个错误“将 varchar 值 '%' 转换为数据类型 int 时转换失败”。

如何才能做到这样,如果我输入 1 作为我的@NUMBER,它将返回以 1 开头的所有内容(即 1234、1235、1278)

最佳答案

您需要将数字转换为字符串,以便将 + 运算符理解为字符串连接(而不是加法):

SELECT *
FROM table1
WHERE cast([NUMBER] as varchar(255)) LIKE cast(@NUMBER as varchar(255)) + '%';

因为 like 无论如何都会执行隐式 cast(),因此您应该明确查询正在执行的操作。我也在第一部分中添加了类型转换。

注意:您还可以通过更改变量的声明来解决此问题:

 DECLARE @NUMBER as varchar(255);
SET @NUMBER = '1';

SELECT * FROM table1 WHERE [NUMBER] LIKE (@NUMBER + '%');

关于mysql - SQL Server SELECT 以 Parameter 开头的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24563814/

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