case when then end

[复制链接]
查看11 | 回复9 | 2007-7-4 17:27:50 | 显示全部楼层 |阅读模式
select * from AA.tfu_HYCC ORDER BY CASE KCRQ WHEN '2007.02.13' THEN 0 ELSE 1 END,LSH;--这样运行不会出错
假如说,我有几条记录中的KCRQ就是 '2007.02.13' ,那么上面这条语句可不可等同于
select * from AA.tfu_HYCC ORDER BY 0,LSH;
如果可以这样等同的话,我直接运行会出错
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
当然不等于
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
但如果我这样运行select * from AA.tfu_HYCC ORDER BY 1,LSH;
就不会出错了
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
那select * from AA.tfu_HYCC ORDER BY CASE KCRQ WHEN '2007.02.13' THEN 0 ELSE 1 END,LSH;是什么意思
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
排序, 看看语法书吧!
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
查了,看不到相应话题
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
原帖由 zgb3579357 于 2008-7-28 15:09 发表
那select * from AA.tfu_HYCC ORDER BY CASE KCRQ WHEN '2007.02.13' THEN 0 ELSE 1 END,LSH;是什么意思

CASE WHEN 和ORDER BY 知道了,就知道了
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
SELECT *
FROM aa.tfu_hycct
ORDER BY CASE kcrq

WHEN '2007.02.13' THEN

0

ELSE

1

END,

lsh;
SELECT t.*,
CASE kcrq
WHEN '2007.02.13' THEN

0
ELSE

1
END s
FROM aa.tfu_hycc t
ORDER BY s;
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
不等同,order by 0怎么行,默认是指定字段
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
caizhuoyi 说的很靠近了,但不能完全等同,有没有人可以写出一个等同的语句,或者解释一下语句
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行