急救信号:SQL构建

tonyyan 2002-07-02 02:47:52
A2,
B1 BOOLEAN,
B2,
C1 BOOLEAN,
C2,
D,E,F,G....
以上是表内的一条记录的几个字段。
如果 A1=TRUE 则生成一条记录包括A2,D,E,F,G...
如果 B1=TRUE 则生成一条记录包括B2,D,E,F,G...
如果 C1=TRUE 则生成一条记录包括C2,D,E,F,G...
请问该如何构建SQL语句
...全文
29 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
OpenVMS 2002-07-04
  • 打赏
  • 举报
回复
SELECT A2 AS X,D... FROM TABLE1 WHERE A1=1
UNION ALL
SELECT B2 AS X,D... FROM TABLE1 WHERE B1=1
UNION ALL
SELECT C2 AS X,D... FROM TABLE1 WHERE C1=1
tonyyan 2002-07-04
  • 打赏
  • 举报
回复
谢谢上面的兄弟。其他弟兄们辛苦了,也给点辛苦费
日总是我哥 2002-07-02
  • 打赏
  • 举报
回复
理解错误,
抛出异常:)
tonyyan 2002-07-02
  • 打赏
  • 举报
回复
伙计们,很抱歉。是我说清楚。
如果A1,B1,C1中有几个为真,就生成几条记录。
一条原始记录,如果三个为真,就会生成三条记录:
A2,D..
B2,D..
C2,D..
CSDNM 2002-07-02
  • 打赏
  • 举报
回复
呵呵,斑竹的理解错了,我的正确!!
OpenVMS 2002-07-02
  • 打赏
  • 举报
回复
如果D后面的字段很多,不想一一列出,也有办法
OpenVMS 2002-07-02
  • 打赏
  • 举报
回复
A1 BIT

DECLARE @SQL VARCHAR(1000)
SET @SQL=''
SELECT @SQL=
CASE WHEN A1=1 THEN 'A2,D,E,F,G...'
WHEN B1=1 THEN 'B2,D,E,F,G... '
WHEN C1=1 THEN 'C2,D,E,F,G...'
END
FROM TABLE1
EXEC('SELECT '+@SQL+' FROM TABLE1')
CSDNM 2002-07-02
  • 打赏
  • 举报
回复
seelct case when a1=1 then a2 when b1=1 then b2 when c1=1 then c2 end as X2,d,e,f,g,... from tablename
sasacat 2002-07-02
  • 打赏
  • 举报
回复
你的字段看不太明白,最好字段要横着排列
a2,b1,c2,d,....
是同一条记录里的?
OpenVMS 2002-07-02
  • 打赏
  • 举报
回复
easy,wait me

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧