我如何 select 所有具有以特定数字开头的 bigint 字段的记录?

How can I select all the record having a bigint field starting with a specific digit?

我不太喜欢 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 条件是所有 returned 记录都必须以数字 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 table 的 ID 字段是 bigint 而不是 varchar.

那么如何在这种类型的字段上实现这个东西呢?我需要它 return 只记录 Polizza table 的 ID 字段以 [=23] 开头=]7

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

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

使用 CAST

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 CAST(p.ID AS VARCHAR(50))LIKE '7%'

SQL 服务器使用单引号包裹字符串

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%'