佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1201|回复: 11

SQL 求救

[复制链接]
发表于 12-12-2006 08:32 PM | 显示全部楼层 |阅读模式
本人想这样做?
SELECT a, b,c
CASE WHEN d == "1" THEN
select d_1 from tbl
ELSE
e
END AS e, f
from tbl2
...但不行....有什么方法呢?
回复

使用道具 举报


ADVERTISEMENT

发表于 12-12-2006 11:41 PM | 显示全部楼层
你的 d 那里来的? 有没有 sample data... 有了 sample data 我们才能知道你大约想做什么...
回复

使用道具 举报

 楼主| 发表于 13-12-2006 07:04 AM | 显示全部楼层
本人想在CASE WHEN 里面加 SELECT a from tbl 但是不能....
normal coding     |   SQL
                  |
if a == b then    |   CASE WHEN a == b then
  c = '1'         |     select c from tbl
else              |   ELSE
  c = '2'         |     '1'

本人想当a == b 去另一个table里拿data, ELSE 拿 1..
回复

使用道具 举报

发表于 13-12-2006 11:17 AM | 显示全部楼层

错误讯息?

原帖由 IV 于 13-12-2006 07:04 AM 发表
本人想在CASE WHEN 里面加 SELECT a from tbl 但是不能....
normal coding     |   SQL
                  |
if a == b then    |   CASE WHEN a == b then
  c = '1'         |     select c from tbl
els ...



不能在哪一方面?
错误讯息(error message)?

Subquery returned more than 1 value?

select c from tbl
不能return多过一个row
回复

使用道具 举报

发表于 13-12-2006 02:13 PM | 显示全部楼层
原帖由 IV 于 12-12-2006 08:32 PM 发表
本人想这样做?
SELECT a, b,c
CASE WHEN d == "1" THEN
select d_1 from tbl
ELSE
e
END AS e, f
from tbl2
...但不行....有什么方法呢?


会不会是因为 SELECT a, b,c 少一个","??
回复

使用道具 举报

 楼主| 发表于 17-12-2006 09:29 AM | 显示全部楼层
原帖由 悠哉亭 于 13-12-2006 11:17 AM 发表



不能在哪一方面?
错误讯息(error message)?

Subquery returned more than 1 value?

select c from tbl
不能return多过一个row



我就是要return多过一个row 的...
回复

使用道具 举报

Follow Us
发表于 17-12-2006 11:36 AM | 显示全部楼层
原帖由 IV 于 12-12-2006 08:32 PM 发表
本人想这样做?
SELECT a, b,c
CASE WHEN d == "1" THEN
select d_1 from tbl
ELSE
e
END AS e, f
from tbl2
...但不行....有什么方法呢?


tbl 和 tbl2 可以join起来吗?
回复

使用道具 举报

 楼主| 发表于 17-12-2006 01:14 PM | 显示全部楼层
tbl1和tbl2完全没有relation...
回复

使用道具 举报


ADVERTISEMENT

发表于 17-12-2006 04:55 PM | 显示全部楼层
原帖由 IV 于 17-12-2006 09:29 AM 发表

我就是要return多过一个row 的...


我領悟力差,不明白.

老兄你可不可以提供一些sample data,
好让其他的大大们能帮你.

例如:
tbl2 sample data:
a  b  c  d  e
-------------
1  1  1  1  1
2  2  2  2  2


tb1 sample data:
d_1
-----------
3
4

SQL:
SELECT a, b,c
CASE WHEN d == "1" THEN
select d_1 from tbl
ELSE e END AS e, f
from tbl2

你要怎样的Result?
Result a:

a b c e
----------
1 1 1 3
1 1 1 4
2 2 2 2

还是
Result b:

a b c e
----------
1 1 1 3,4
2 2 2 2
回复

使用道具 举报

 楼主| 发表于 17-12-2006 06:54 PM | 显示全部楼层
tbl1只有一个Record.而expected result 是
a b c e
----------
1 1 1 3
2 2 2 2
回复

使用道具 举报

发表于 17-12-2006 11:30 PM | 显示全部楼层

回复 #9 悠哉亭 的帖子

SELECT a, b,c,
CASE d when 1 THEN (select d_1 from tbl) ELSE e END AS e, f
from tbl2;
回复

使用道具 举报

发表于 17-12-2006 11:35 PM | 显示全部楼层

回复 #10 IV 的帖子

or

SELECT a, b,c,
CASE when d = 1 THEN (select d_1 from tbl) ELSE e END AS e, f
from tbl2;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 14-11-2024 05:03 AM , Processed in 0.771243 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表