惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
Y
Y Combinator Blog
The Cloudflare Blog
V
V2EX
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
MyScale Blog
MyScale Blog
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
P
Privacy International News Feed
S
Securelist
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tor Project blog
P
Proofpoint News Feed
Project Zero
Project Zero
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
美团技术团队
The GitHub Blog
The GitHub Blog
SecWiki News
SecWiki News
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Security Latest
Security Latest
NISL@THU
NISL@THU
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Secure Thoughts
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
IT之家
IT之家
Last Week in AI
Last Week in AI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy & Cybersecurity Law Blog
A
About on SuperTechFans
Microsoft Azure Blog
Microsoft Azure Blog
M
MIT News - Artificial intelligence
Spread Privacy
Spread Privacy
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Security Affairs
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG

博客园 - Double_

一个开始----大数据思维模式在物联网系统运维应用的一个案例 轻松掌握ISO8583报文协议 C#网络Socket的数据发送与接收处理(利用异步)的模板(模式) 在信息系统运维开发中,对MVC框架认识上的一种变通 [留着备用]ASP.NET动态菜单生成通用方法 福建省获得央行颁发的非金融机构支付业务许可牌照的公司(至2012-08-01) 替信息系统运维工作正名 工程上一例误差范围的计算方法(利用穷举法俗称笨方法又称愚公移山法还可称愚公大战智叟法) 至最近写的微博记录(一) 对古人“一命二运三风水,四积德五读书”的人生命运总结的理解 话说物联网 - Double_ - 博客园 SQL Server TEXT类型字段字符串替换示例处理脚本 获取SQL Server服务器的连接信息用脚本(在原邹建写的基础上作一点改进)与一段查询SQL Server服务器阻塞和死锁信息用的脚本 赖床狂想记录 字符串前部去除自定义函数(T-SQL) 复习:C#3.0面向对象测试开发包 M1非接触式射频存储卡卡唯一号(十六进制值表示),去除其前部为0的自定义函数 某储蓄卡业务系统若干问题求证与求解 从数据库系统管理的角度上回答数据库是什么
SQL Server 2000实现一则按类似VB VAL函数功能排序的案例
Double_ · 2009-12-05 · via 博客园 - Double_

                  SQL Server 2000实现一则按类似VB VAL函数功能排序的案例

      最近,在项目维护时,碰到对以下的数据进行排序处理:

排序前:

   班级    照片名称
机械1班 1张三.jpg
机械1班 7李四.jpg
机械1班 3王五.jpg
财会2班 3如花.jpg
财会2班 6像花.jpg
财会2班 1真花.jpg
体育1班 3铁男.jpg
体育1班 1猛男.jpg
财会2班 10若花.jpg
体育1班 30衰男.jpg


排序后(要实现的结果):

班级       照片名称
财会2班 1真花.jpg
财会2班 3如花.jpg
财会2班 6像花.jpg
财会2班 10若花.jpg
机械1班 1张三.jpg
机械1班 3王五.jpg
机械1班 7李四.jpg
体育1班 1猛男.jpg
体育1班 3铁男.jpg
体育1班 30衰男.jpg


     也许有人会说,这还不简单,只要输入"SELECT 班级, 照片名称 FROM [Table] ORDER BY 班级, 照片名称"语句,不就出结果了吗?事实如此吗,请看此SQL语句执行后的结果:

班级       照片名称
财会2班 10若花.jpg
财会2班 1真花.jpg
财会2班 3如花.jpg
财会2班 6像花.jpg
机械1班 1张三.jpg
机械1班 3王五.jpg
机械1班 7李四.jpg
体育1班 1猛男.jpg
体育1班 30衰男.jpg
体育1班 3铁男.jpg


     是不是与预期的结果有很大的出入呢? 怎样解决这问题,实现想要的结果呢?由于SQL Server没有类似VB的VAL函数,因此想实现如上数据的排序,将比较困难。不过,只要执行以下SQL语句就可以了,今天免费赠送了。废话少说,亮代码:

SELECT 班级, 照片名称
FROM (SELECT *, CASE WHEN (UNICODE(SUBSTRING(photo, 1, 1)) BETWEEN 48 AND
              57) AND NOT (UNICODE(SUBSTRING(photo, 2, 1)) BETWEEN 48 AND 57)
              THEN SUBSTRING(photo, 1, 1) WHEN (UNICODE(SUBSTRING(photo, 1, 1))
              BETWEEN 48 AND 57) AND (UNICODE(SUBSTRING(photo, 2, 1)) BETWEEN
              48 AND 57) THEN SUBSTRING(photo, 1, 2) END AS photoid
        FROM (SELECT *, LTRIM(照片名称) AS photo
                FROM [TABLE]) l) ll
ORDER BY 班级, CAST(ISNULL(photoid, 0) AS int)

没想到一个简单的功能,要写这么复杂的代码。看来,前人"造轮子"没造全,将会给后面的应用开发人员带来不小的烦恼。