sql - 如何选择所有具有以特定数字开头的 bigint 字段的记录?

标签 sql sql-server database sql-server-2008 rdbms

我不太喜欢 SQL,但遇到以下问题。

我已经编写了这个简单的 JOIN 查询:

select a.nome, a.cognome from Banker b
INNER JOIN Anagrafica a
ON b.AnagraficaID = a.ID
INNER JOIN Polizza p
ON p.BankerID = b.ID
WHERE p.ID LIKE "7%"

我的问题出在最后一个 WHRE 子句上。我希望 where 条件是所有返回的记录都必须以数字 7 开头,但我收到此错误消息:

 14:59:07  [SELECT - 0 row(s), 0.000 secs]  [Error Code: 207, SQL State: S0001]  Invalid column name '7%'.
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec  [0 successful, 0 warnings, 1 errors]

我认为这可能取决于 Polizza 表的 ID 字段是 bigint 而不是 varchar.

那么如何在这种类型的字段上实现这个东西呢?我需要它只返回具有以 7

开头的 Polizza 表的 ID 字段的记录

最佳答案

尝试转换 ID 并从 "7%"中删除双引号

WHERE CAST(p.ID AS VARCHAR(30)) LIKE '7%'

关于sql - 如何选择所有具有以特定数字开头的 bigint 字段的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38505060/

相关文章:

mysql - Laravel DB Builder 使用字符串变量作为整数 ID

sql - Azure 从 Azure 文件服务位置将 csv 文件批量导入 Azure SQL Server

php - 尝试将 MySQL 表名称回显到 HTML 页面中

c# - MySQL 相当于 MS SQL 代码

sql-server - 在 `varbinary`列中插入文件内容

sql - 在不可连接的列上右连接

SQL 语句

sql-server - 如何在 Entity Framework 连接上设置 CONTEXT_INFO

asp.net-mvc - 在 mvc 中的应用程序的整个生命周期中保持变量

database - meteor 一次或 "static"发布没有收集跟踪