我需要在表格中搜索裏面有所有我需要的值的列項即 我有表:搜索在SQL Server問題
ID : 1 2 3 3 2 2 2 1 1 3
VALUE : 5 6 5 3 6 7 2 1 9 0
我想給一個StoredProc值的列表例如(「6,7,2」),它返回所有具有所有給定值的ID,它只返回2
如果我想搜索那些至少有一個值我知道我可以使用「IN」,但是我沒有發現任何值。
預先感謝您
阿夫欣Arefi
我需要在表格中搜索裏面有所有我需要的值的列項即 我有表:搜索在SQL Server問題
ID : 1 2 3 3 2 2 2 1 1 3
VALUE : 5 6 5 3 6 7 2 1 9 0
我想給一個StoredProc值的列表例如(「6,7,2」),它返回所有具有所有給定值的ID,它只返回2
如果我想搜索那些至少有一個值我知道我可以使用「IN」,但是我沒有發現任何值。
預先感謝您
阿夫欣Arefi
在SQL Server 2008中,你可以使用table value parameters。
這些允許您將值表傳遞給存儲過程,並將其視爲任何其他表(用於子查詢,連接等)。
在查詢方面 - 如果你使用一個表值參數,就可以查詢它的大小(多少行),結合使用IN
與上ID
領域GROUP BY
和HAVING
計數的數量行。
另一種方法是將臨時表作爲存儲過程的輸入/輸出,但如果適用,表變量(如果適用)是一個更乾淨的解決方案。 – 2010-08-10 07:31:20
謝謝 它的工作: SELECT CMC_ID FROM [CommodityClass],[CommodityClassDynamicAttributes] WHERE(CMC_ID = CCA_CMC_ID) AND(CCA_DAT_ID IN(@CCA_DAT_ID_LIST)) GROUP BY CMC_ID HAVING COUNT(CCA_DAT_ID)= @CCA_DAT_ID_COUNT – Scarlet 2010-08-10 09:16:26
您使用的數據庫是?他們每個人都有不同的功能可以支持這一點,所以知道這一點很重要。 – Oded 2010-08-10 07:22:07
我正在使用MS SQL SERVER 2008 R2 – Scarlet 2010-08-10 07:24:19