sql语句,由四位数组成的组合排列,每一位数里面都是从0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F中16个数取一位

yy_zan004 2012-06-25 09:26:11
用sql语句写,由四位数组成的组合排列,每一位数里面都是从0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F中16个数取一位按顺序排序
如:
0000
0001
0002
0003
....
0009
000A
000B
....
000F
0010
....
FFFF
...全文
1498 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独加百列 2012-06-26
  • 打赏
  • 举报
回复

WITH L AS
(
SELECT '0' AS Col UNION
SELECT '1' UNION
SELECT '2' UNION
SELECT '3' UNION
SELECT '4' UNION
SELECT '5' UNION
SELECT '6' UNION
SELECT '7' UNION
SELECT '8' UNION
SELECT '9' UNION
SELECT 'A' UNION
SELECT 'B' UNION
SELECT 'C' UNION
SELECT 'D' UNION
SELECT 'E' UNION
SELECT 'F'
)

SELECT A.Col + B.Col + C.Col + D.Col
FROM L AS A,L AS B,L AS C,L AS D
中国风 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

SQL code

CREATE TABLE t1
(
col VARCHAR(1)
)
INSERT INTO t1
SELECT '0' UNION ALL
SELECT '1' UNION ALL
SELECT '2' UNION ALL
SELECT '3' UNION ALL
SELECT '4' UNION ALL
SELECT '5' UNION ALL
SELECT '……
[/Quote]
--生成这类组合数字直接调用就行了
SELECT a.COl+b.Col+c.Col+d.Col AS Col FROM t1 AS a,t1 AS b,t1 AS c,t1 AS d ORDER BY Col
中国风 2012-06-26
  • 打赏
  • 举报
回复
如果只是排序没有什么意义,你用字符串排序就行了,何必转换,用于显示另当别论

把二进制直接转为字符串就行了
gogodiy 2012-06-26
  • 打赏
  • 举报
回复

CREATE TABLE t1
(
col VARCHAR(1)
)
INSERT INTO t1
SELECT '0' UNION ALL
SELECT '1' UNION ALL
SELECT '2' UNION ALL
SELECT '3' UNION ALL
SELECT '4' UNION ALL
SELECT '5' UNION ALL
SELECT '6' UNION ALL
SELECT '7' UNION ALL
SELECT '8' UNION ALL
SELECT '9' UNION ALL
SELECT 'A' UNION ALL
SELECT 'B' UNION ALL
SELECT 'C' UNION ALL
SELECT 'D' UNION ALL
SELECT 'E' UNION ALL
SELECT 'F'
SELECT * FROM t1

;WITH aaa AS
(SELECT a.col AS col1,b.col AS col2,c.col AS col3,d.col AS col4 FROM t1 AS a
CROSS JOIN t1 AS b CROSS JOIN t1 AS c CROSS JOIN t1 AS d)
,bbb AS
(SELECT col1+col2+col3+col4 AS col FROM aaa )
SELECT * FROM bbb ORDER BY col

-------------------------
col
0000
0001
0002
0003
0004
0005
0006
0007
...
FFF7
FFF8
FFF9
FFFA
FFFB
FFFC
FFFD
FFFE
FFFF

16的4次方,一共65536条记录
中国风 2012-06-26
  • 打赏
  • 举报
回复
USE tempdb 
GO ;
WITH a AS (SELECT TOP 32 ROW_NUMBER()OVER(ORDER BY RAND()) AS Col FROM sysobjects) SELECT CAST(col AS BINARY(2)) AS [二进制] FROM a
/* 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C 0x000D 0x000E 0x000F 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0017 0x0018 0x0019 0x001A 0x001B 0x001C 0x001D 0x001E 0x001F 0x0020 */
中国风 2012-06-26
  • 打赏
  • 举报
回复
用二进制类型省事

haitao 2012-06-26
  • 打赏
  • 举报
回复
提供一个新思路:
循环整数 0-0xffff
把整数转为16进制字符串输出
yy_zan004 2012-06-26
  • 打赏
  • 举报
回复
declare @s varchar(10),@s1 varchar,@a varchar(20),@n int
set @n = 1
if object_id('tempdb..#2')>0 drop table #2
create table #2(c char)
while @n<=16
begin
set @a = '0123456789abcdef'
select @s = substring(@a,@n,1)
set @n =@n+1
insert into #2(c) values(@s)
end
--select * from #2

if object_id('tempdb..#1')>0 drop table #1
create table #1(c1 char)
insert into #1(c1)
select c from #2
select t.c3+t1.c3 as c4 from (select c+c1 as c3 from #1 cross join #2 ) t
cross join (select c+c1 as c3 from #1 cross join #2 ) t1
order by c4
  • 打赏
  • 举报
回复

--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
create table [test](
[id] int,
[name] varchar(5),
[recorddate] date,
[workhours] numeric(3,2)
)
go
insert [test]
select 1,'sa','2012-06-10',8.00 union all
select 2,'sa','2012-06-11',8.00 union all
select 3,'root','2012-06-11',9.00 union all
select 4,'root','2012-06-14',7.00 union all
select 5,'admin','2012-06-15',6.00 union all
select 6,'sa','2012-06-10',3.00
go

declare @StartTime date
set @StartTime='2012-06-10'
;with t
as(
select distinct b.name,DATEADD(DD,number,@StartTime) as [recorddate]
from master..spt_values a
cross join test b
where number between 0 and 5 and type='p'
)
select t.name,t.recorddate,sum(isnull(m.workhours,0.00)) as workhours
from t
left join test m
on t.recorddate=m.recorddate and t.name=m.name
group by t.name,t.recorddate
order by t.name,t.recorddate

/*
name recorddate workhours
----------------------------------------------
admin 2012-06-10 0.00
admin 2012-06-11 0.00
admin 2012-06-12 0.00
admin 2012-06-13 0.00
admin 2012-06-14 0.00
admin 2012-06-15 6.00
root 2012-06-10 0.00
root 2012-06-11 9.00
root 2012-06-12 0.00
root 2012-06-13 0.00
root 2012-06-14 7.00
root 2012-06-15 0.00
sa 2012-06-10 11.00
sa 2012-06-11 8.00
sa 2012-06-12 0.00
sa 2012-06-13 0.00
sa 2012-06-14 0.00
sa 2012-06-15 0.00
*/

create table #t(
value varchar(5)
)
go
insert #t
select '0001' union all
select '0004' union all
select '0002' union all
select '0023' union all
select '0016' union all
select '0005' union all
select '0008' union all
select '0009' union all
select '0007'

select * from #t
order by CONVERT(binary,'0x'+value)

/*
value
--------
0001
0002
0004
0005
0007
0008
0009
0016
0023
*/


第1章 窗体与界面设计 1 1.1 菜单应用 2 实例001 在系统菜单添加菜单项 2 实例002 带历史信息的菜单 3 实例003 菜单动态合并 4 实例004 像“开始”菜单一样漂亮的菜单 5 实例005 多彩的菜单 6 实例006 可以拉伸的菜单界面 8 1.2 工具栏设计 9 实例007 带背景的工具栏 9 实例008 浮动工具栏 10 1.3 状态栏设计 11 实例009 在状态栏显示检查框 11 实例010 带进度条的状态栏 12 实例011 状态栏加入图标 13 1.4 导航菜单界面 14 实例012 OutLook界面 14 实例013 带导航菜单的主界面 15 实例014 图形化的导航界面 16 1.5 特色程序界面 18 实例015 类QQ的程序界面 18 实例016 类似Windows XP的程序界面 20 实例017 以图形按钮显示的界面 21 实例018 以树型显示的程序界面 23 实例019 以XPManifest组件显示界面 24 实例020 动态按钮的窗体界面 25 1.6 特殊形状的窗体 26 实例021 非矩形窗体 26 实例022 建立字体形状窗体 28 1.7 多媒体光盘 29 实例023 自动启动的多媒体光盘程序 29 实例024 为触摸屏程序添加虚拟键盘 30 实例025 触摸屏系统 31 1.8 窗体效果 33 实例026 半透明渐显窗体 33 实例027 窗口颜色的渐变 34 实例028 带背景的窗体 35 实例029 为窗体增加边框 36 1.9 窗体动画 37 实例030 窗体的滚动字幕 37 实例031 动画显示窗体 38 实例032 制作闪烁的窗体 39 实例033 直接在窗体上绘图 40 实例034 动画形式的程序界面 41 实例035 以时钟显示界面窗体 42 1.10 标题栏窗体 44 实例036 标题栏上的按钮 45 实例037 使窗体标题栏文字右对齐 47 实例038 没有标题栏但可以改变大小的窗口 48 1.11 设置窗体位置 49 实例039 不可移动的窗体 49 实例040 设置窗体在屏幕的位置 50 实例041 始终在最上面的窗体 51 1.12 设置窗体大小 52 实例042 限制窗体大小 52 实例043 获桌面大小 53 实例044 组件大小随窗体的改变而改变 53 实例045 在窗口间移动按钮 54 实例046 如何实现Office助手 55 1.13 窗体控制技术 56 实例047 在关闭窗口前加入确认对话框 56 实例048 程序在循环响应界面操作 57 实例049 使用任意组件拖动窗体 58 实例050 动态创建窗体和释放窗体 59 实例051 修改提示字体及颜色 60 1.14 其他技术 61 实例052 窗口融合技术 61 实例053 给MDI窗体加背景 62 实例054 如何关闭MDI类型窗体的子窗体 63 实例055 向提示框添加图标 64 第2章 控件应用 67 2.1 TEdit控件应用典型实例 68 实例056 从右至左输入数据 68 实例057 为TEdit控件添加列表选择框 69 实例058 只允许输入数字的TEdit组件 70 2.2 TSpeedButton控件应用典型实例 71 实例059 在TSpeedButton按钮显示图标 71 实例060 折行显示按钮标题 72 2.3 TMemo控件应用典型实例 73 实例061 设置TMemo组件的边界 73 实例062 TMemo组件的光标定位 74 实例063 得到TMemo的可见行数 75 2.4 TListBox控件应用典型实例 76 实例064 在TListBox组件间交换数据 76 实例065 为TListBox添加水平滚动条 77 实例066 将数据库数据添加到组合 78 实例067 借助绑定控件实现数据选择录入 79 2.5 TListView控件应用典型实例 80 实例068 TListView列表拒绝添加重复信息 80 实例069 将数据库数据添加到TListView控件 82 实例070 用TListView控件制作导航界面 83 实例071 在TListView控件对数据排序或统计 84 实例072 在TListView组件绘制底纹 86 实例073 在列表视图拖动视图项 87 2.6 TTreeView控件应用典型实例 88 实例074 将数据库数据显示到树视图 88 实例075 用TTreeView控件制作导航界面 90 实例076 TTreeView组件遍历磁盘目录 91 实例077 TTreeView组件在数据库的应用 92 2.7 TStringGrid控件应用典型实例 94 实例078 程序运行时对

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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