Ben*_*ter 4 t-sql sql-server-2008 sql-server-2008-r2
我有一个数据表,其中有一个列列表(对于此示例,归结为相关的列):
users(
usr_pkey int identity(1, 1) primary key,
usr_name nvarchar(64),
...,
)
accounts(
acc_pkey int identity(1, 1) primary key,
usr_key int foreign_key references users(usr_pkey),
acc_effective datetime,
acc_expires datetime,
acc_active bit,
...,
)
Run Code Online (Sandbox Code Playgroud)
从这张表中我想抓住所有记录:
所以 - 如果存在活动记录,其中今天的日期介于帐户的有效日期和到期日期之间,我想要该记录.只有在找不到匹配项时,我才希望该用户拥有最近的到期日期.
除非在TSQL 2008中发生了根本性的变化,否则它就是蛮力.
select *
from table
where ( ( condition 1 OR condition 2)
AND NOT ( condition 1 AND condition 2) )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12083 次 |
| 最近记录: |