我有一个查询需要将一个值与多个列进行比较,并且只返回一个结果。当它试图将一个字符串参数转换为一个整数时,我总是收到一个转换错误,但是我一直无法找到避免这种情况的好方法。SQL搜索多个字段,返回一个
SELECT DISTINCT
CASE
WHEN table_one.integer_col = CAST('argument%' AS int)
THEN table_one.integer_col
WHEN table_one.varchar_col LIKE 'argument%'
THEN table_one.varchar_col
WHEN table_two.varchar_col LIKE 'argument%'
END
FROM table_one
INNER JOIN table_two
ON table_one.pk=table_two.fk
WHERE
table_one.integer_col = CAST('argument%' AS int)
table_one.varchar_col LIKE 'argument%' OR
table_two.varchar_col LIKE 'argument%'
这工作时“的说法%”能够成功地转换为整数,但是当它不能查询炸弹。
你为什么要对一个整数做一个LIKE查询? – RichardOD 2009-12-10 16:16:35
对不起,打字太快...编辑了问题。 – 2009-12-10 16:21:35