【发布时间】:2009-01-06 17:12:48
【问题描述】:
首先查看此代码。我似乎应该对我有用,但事实并非如此! (惊喜!)
无论如何,这是我首先尝试的:
SELECT
Status as status,
Address as ip,
PCName as pc_name,
(Numbers.Phone = 'CPU/' + PCName) as cpu_contact,
(Numbers.Phone = 'PC/' + PCName) as pc_contact,
(Numbers.Phone = 'LOGIN/' + PCName) as login_contact,
FROM IPAddress
WHERE $where --Generated In code
JOIN Numbers
ON ('CPU/' + PCName = Numbers.Phone)
OR ('PC/' + PCName = Numbers.Phone)
OR ('LOGIN/' + PCName = Numbers.Phone)
所以我想要的是一些布尔计算字段并在类似条件下加入。我还希望结果折叠成单行。例如,我认为当前的设置会做这样的事情:
status ip cpu_contact pc_contact login_contact
-----------------------------------------------
foo bar true false false
foo bar false true false
foo bar false false true
显然我更愿意
status ip cpu_contact pc_contact login_contact
-----------------------------------------------
foo bar true true true
有什么想法吗?数据库重新设计不是一种选择。如果是的话,我会这样做:-)
【问题讨论】:
标签: sql sql-server tsql