数据排列问题

wynlc 2013-09-29 11:33:29
CREATE TABLE [dbo].[ZHOU](
[A] [int] NULL,
[B] [int] NULL
)
INSERT INTO ZHOU
SELECT 1,0
UNION
SELECT 0,3
UNION
SELECT 5,0
UNION
SELECT 0,2


想通过查询得到如下结果

1,0
0,2
0,3
5,0
...全文
120 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2013-09-29
  • 打赏
  • 举报
回复
那应该是1、5、0、0那种排序啊,
wynlc 2013-09-29
  • 打赏
  • 举报
回复
规则: A、B两列数据类型相同 当A有值时B为空 ,B有值时A为空 想用A,B非空值进行排序
發糞塗牆 2013-09-29
  • 打赏
  • 举报
回复
让别人猜太浪费时间了
Mr_Nice 2013-09-29
  • 打赏
  • 举报
回复
引用 6 楼 wynlc 的回复:
[quote=引用 3 楼 OrchidCat 的回复:]
SELECT * 
FROM zhou
ORDER BY A+B ASC

/*
A	B
1	0
0	2
0	3
5	0*/
忘记说明了 字段A,B有可能不是数值型 没法加和[/quote] lz 给个规则吧! 比如是文本型的,然后按照什么规则排序呢?
wynlc 2013-09-29
  • 打赏
  • 举报
回复
引用 3 楼 OrchidCat 的回复:
SELECT * 
FROM zhou
ORDER BY A+B ASC

/*
A	B
1	0
0	2
0	3
5	0*/
忘记说明了 字段A,B有可能不是数值型 没法加和
wynlc 2013-09-29
  • 打赏
  • 举报
回复
SELECT 
BB.*
FROM 
(
SELECT 
AA
FROM 
(
SELECT A AS AA FROM ZHOU WHERE A<>0 
UNION
SELECT B AS AA FROM ZHOU WHERE B<>0 
) AS T
) AS TT , ZHOU AS BB
WHERE
TT.AA=BB.A OR TT.AA=BB.B
ORDER BY TT.AA
我自己写的有点复杂
發糞塗牆 2013-09-29
  • 打赏
  • 举报
回复
引用 3 楼 OrchidCat 的回复:
SELECT * 
FROM zhou
ORDER BY A+B ASC

/*
A	B
1	0
0	2
0	3
5	0*/
Mr_Nice 2013-09-29
  • 打赏
  • 举报
回复
SELECT * 
FROM zhou
ORDER BY A+B ASC

/*
A	B
1	0
0	2
0	3
5	0*/
發糞塗牆 2013-09-29
  • 打赏
  • 举报
回复
如果没有规律,就用case when来逐行指定顺序
华夏小卒 2013-09-29
  • 打赏
  • 举报
回复
总得有个规则吧

34,576

社区成员

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

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