我有一個查詢需要將一個值與多個列進行比較,並且只返回一個結果。當它試圖將一個字符串參數轉換爲一個整數時,我總是收到一個轉換錯誤,但是我一直無法找到避免這種情況的好方法。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