在sql查询中使用charindex

时间:2009-05-17 20:24:17

标签: sql

我有一个名为itemIDs的字符串,以逗号分隔(12,43,34,..),为了将其用作参数,我需要将其转换为int,因为db中的itemID是int格式。 / p>

这是我写的,但我收到错误Incorrect syntax near the keyword 'as'.

using (SqlCommand searchResult = new SqlCommand("SELECT ItemID, Name, RelDate, Price, Status FROM item_k WHERE (itemID = cast(charindex(',',(@itemIDs as int))))", searchCon))

我无法弄明白,这里似乎有什么问题?

2 个答案:

答案 0 :(得分:2)

你从哪里获得itemID?如果它是一个字符串,您可以生成mathematicaly,而不是来自外部源,您可以使用:

... "SELECT ItemID, Name, RelDate, Price, Status FROM item_k WHERE itemID IN (" + itemIDs + ")"

答案 1 :(得分:1)

我建议您在WHERE子句中采用不同的方法。您可以使用IN指定列表。

using (SqlCommand searchResult = new SqlCommand("
SELECT ItemID, Name, RelDate, Price, Status 
FROM item_k 
WHERE itemID IN (" + itemIDs + ")"

这对应于SQL:

SELECT ItemID, Name, RelDate, Price, Status 
FROM item_k 
WHERE itemID IN (12,43,34)