我的表中有以下數據。從表格中獲取數據,使用行作爲列
alt text http://img26.imageshack.us/img26/3746/productfield.png
我想提取產品編號具有該標準,
FieldValue = 1.0 and FieldValue = 'Y' and FieldValue = 'N'
這是不可能的使用下面的查詢
select * from MyTable
WHERE (FieldId = 50 AND (FieldValue BETWEEN '1.0' AND '1.0'))
AND (FieldId = 55 AND FieldValue = 'Y')
AND (FieldId = 60 AND FieldValue = 'N')
,我不能用這樣的查詢。這也取產品編號103和104
select * from MyTable
WHERE (FieldId = 50 AND (FieldValue BETWEEN '1.0' AND '1.0'))
OR (FieldId = 55 AND FieldValue = 'Y')
OR (FieldId = 60 AND FieldValue = 'N')
alt text http://img690.imageshack.us/img690/16/productfieldresult.png
我不知道產品編號提前。事實上,我想使用FieldValue標準提取ProductId。我不能在我的where子句中使用ProductId,因爲我不知道。只有我知道是fieldValue和FieldId。
感謝您的幫助!
我只需要productId映射標準我已經提到。沒有必要重新排列連續的列。 – Kashif 2009-11-07 14:21:04
我覺得dotjoe解決方案更相關,因爲你想根據fieldvalue標準執行搜索,而不是fieldvalue和fieldid。 (: – 2009-11-07 14:55:29
的確,這是一個很好的問題:你想只過濾FieldValue還是(FieldId,FieldValue) - 組合?你的問題聽起來更像前者,但是你的SQL例子和「常識」導致第二個問題。 .. – Heinzi 2009-11-07 15:15:16