如何在select查询中转换列

时间:2014-05-07 15:13:22

标签: sql psycopg2 psql

我有这个问题:

SELECT * FROM students
WHERE name LIKE '%ka%' OR 
tel LIKE '%12%' OR 
address LIKE '%ka%'; 

但是tel是整数类型的列,因此我无法在那里使用%abc%运算符(尽管我需要这样做)

如何在此查询中转换tel列?

3 个答案:

答案 0 :(得分:3)

试试这个

SELECT * FROM students
WHERE name LIKE '%ka%' OR 
CAST(tel as text) LIKE '%12%' OR 
address LIKE '%ka%'; 

答案 1 :(得分:1)

首先将tel转换为text类型

cast(tel as text) LIKE '%12%' OR 

如果您没有使用像int

这样的int类型,则应考虑更改列类型

对于像这样的查询,索引和其他数据库优化无效。

答案 2 :(得分:1)

试试这个:

SELECT * FROM students
WHERE name LIKE '%ka%' OR 
CONVERT(VARCHAR, tel) LIKE '%12%' OR 
address LIKE '%ka%';