-3

我想通过其BIGINT主键(SQL Server 标识)搜索记录,但想将它们作为字符串而不是数字进行比较。我需要它在应用程序的 GUI 中建议数据。

是否可以通过这种方式找到记录,而仍然使用主键索引?如何?

选择应该在'123'查询中选择行,例如:

123
123456
123654654
4

3 回答 3

4

您需要在CAST您的列中VARCHAR(在选择数据时)进行搜索123%

WHERE CAST(col1 AS VARCHAR(10)) LIKE '123%'

看这个演示

是否可以通过这种方式找到记录,而仍然使用主键索引?如何?

正如@Dems 在此评论中解释的那样,当您将其转换为原始数据类型时,您不能使用它VARCHAR

于 2012-10-17T09:19:01.647 回答
1

您还可以LEFT为此使用函数:

WHERE LEFT(col1 ,3) = 123;

看这个演示

是否可以通过这种方式找到记录,而仍然使用主键索引?如何?

正如@Dems 在此评论中解释的那样,当您将其转换为原始数据类型时,您不能使用它VARCHAR

于 2012-10-17T09:53:30.253 回答
0

为什么不使用 % 通配符,如下所示:

where id like '123%'
于 2012-10-17T09:18:26.633 回答