【发布时间】:2016-07-18 07:48:16
【问题描述】:
我一直在桌子上敲打我的头,试图弄清楚这一点。我有一个存储作业信息的表,以及作业未完成的原因。原因有数字、01、02、03等。对于待处理的作业,您可能有两个原因。如果选择两个原因,它们将存储在同一列中,以逗号分隔。这是 JOBID 表中的一个示例:
Job_Number User_Assigned PendingInfo
1 user1 01,02
还有一个名为 Pending 的表,用于存储这些值实际表示的内容。 01=没有足够的信息,02=没有足够的时间,03=等待审核。示例:
Pending_Num PendingWord
01 Not Enough Info
02 Not Enough Time
我要做的是查询数据库以提供所有工作编号、用户、待处理信息和待处理原因。我可以打破第一个值,但不知道如何做第二个。到目前为止我有限的技能:
select Job_number,user_assigned,SUBSTRING(pendinginfo,0,3),pendingword
from jobid,pending
where
SUBSTRING(pendinginfo,0,3)=pending.pending_num and
pendinginfo!='00,00' and
pendinginfo!='NULL'
我希望在这个例子中看到的是:
Job_Number User_Assigned PendingInfo PendingWord PendingInfo PendingWord
1 User1 01 Not Enough Info 02 Not Enough Time
提前致谢
【问题讨论】:
-
是否可以选择更改架构?这种关系实际上应该是映射表或次要原因列。
-
数据库 101 - 第一个范式 (1NF):每个行/列单元格最多只能包含 一个值。
标签: sql sql-server-2008