我有一個表有3個字段的用戶ID,州,國家和我試圖運行一個查詢,查找所有記錄的國家是偉大的英國,加拿大或美國。如果這個國家是美國,我只想要在加利福尼亞州,猶他州和亞利桑那州的唱片。SQL Server使用case語句與in語句
我想這可能工作,但沒有
select *
from myTable
where county in ('GB','CA','US')
and case when country = 'US' then state in ('CA','UT','CA') end
任何SQL大師有一個想法?
**編輯** 我想我試圖在簡化此。國家和國家是作爲變量傳遞,因此不知道是否會有一個「美」的國家,但是,如果有就會有一個狀態列表
declare @country varchar(500)
, @state varchar(500)
, @sqlStr varchar(4000)
select @sqlStr = 'select * from Addresses
WHERE country IN ('[email protected]+')
OR (country = ''US'' AND stateCode IN ('[email protected]+'))'
exec (@sqlStr)
這使得這個困難。
感謝@Zdravko與變量工作 – Lance