解决方案 »
- postgresql的外键可不可以同时为主键,这样有没有影响?
- sql if else 问题,
- Error 1102 <42000>: Incorrect DB name
- mysql 写文件语句要怎么写
- 连接局域网里mysql数据库时无法连接
- datetime或者timestamp的时间类型怎么计算它和现在相差几天
- SQL语言中Where IN的有关问题
- sql 高手请指点这样的select 如何写,要求见贴内,先谢过!
- SQL装上怎样才能使用呀!或许根本没装上!请指教!
- 在mysql中可以实现外健的设置吗?。。。。
- mysql表名为数字,无法执行select * from 1000532;为什么,怎么办?急急急!望高手解答,谢谢。
- mysql 不间断的出现 SQLSTATE[HY000] [2003] Can't connect to MySQL server on '
B1.UID,
(SELECT IF(B.V1<>0,A.ATTR1,NULL) FROM A,B WHERE A.UID=B.UID AND B.UID=B1.UID AND B.ATTR_NAME='ATTR1')ATTR1,
(SELECT IF(B.V1<>0,A.ATTR2,NULL) FROM A,B WHERE A.UID=B.UID AND B.UID=B1.UID AND B.ATTR_NAME='ATTR2')ATTR2
FROM( SELECT DISTINCT UID FROM B)B1
UNION ALL
SELECT 'V2' REMARKS,
B1.UID,
(SELECT IF(B.V2<>0,A.ATTR1,NULL) FROM A,B WHERE A.UID=B.UID AND B.UID=B1.UID AND B.ATTR_NAME='ATTR1')ATTR1,
(SELECT IF(B.V2<>0,A.ATTR2,NULL) FROM A,B WHERE A.UID=B.UID AND B.UID=B1.UID AND B.ATTR_NAME='ATTR2')ATTR2
FROM( SELECT DISTINCT UID FROM B)B1
ORDER BY UID,REMARKS
B1.UID,
(SELECT IF(B.V1<>0,A.ATTR1,NULL) FROM A,B WHERE A.UID=B.UID AND B.UID=B1.UID AND B.ATTR_NAME='ATTR1')ATTR1,
(SELECT IF(B.V1<>0,A.ATTR2,NULL) FROM A,B WHERE A.UID=B.UID AND B.UID=B1.UID AND B.ATTR_NAME='ATTR2')ATTR2
FROM( SELECT DISTINCT UID FROM B)B1
UNION ALL
SELECT 'V2' REMARKS,
B1.UID,
(SELECT IF(B.V2<>0,A.ATTR1,NULL) FROM A,B WHERE A.UID=B.UID AND B.UID=B1.UID AND B.ATTR_NAME='ATTR1')ATTR1,
(SELECT IF(B.V2<>0,A.ATTR2,NULL) FROM A,B WHERE A.UID=B.UID AND B.UID=B1.UID AND B.ATTR_NAME='ATTR2')ATTR2
FROM( SELECT DISTINCT UID FROM B)B1
ORDER BY UID,REMARKS
测试后确实满足需求,多谢!