我不太喜欢 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/