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

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
G
Google Developers Blog
T
Threat Research - Cisco Blogs
Cyberwarzone
Cyberwarzone
罗磊的独立博客
S
Security Affairs
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog
G
GRAHAM CLULEY
W
WeLiveSecurity
博客园 - Franky
C
Check Point Blog
The Last Watchdog
The Last Watchdog
F
Full Disclosure
Security Latest
Security Latest
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
AWS News Blog
AWS News Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Troy Hunt's Blog
S
Secure Thoughts
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Privacy & Cybersecurity Law Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
S
Schneier on Security
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tenable Blog
aimingoo的专栏
aimingoo的专栏
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recent Announcements
Recent Announcements
IT之家
IT之家
D
DataBreaches.Net
U
Unit 42
博客园 - 聂微东
H
Hacker News: Front Page
GbyAI
GbyAI
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
Simon Willison's Weblog
Simon Willison's Weblog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
TaoSecurity Blog
TaoSecurity Blog
Google Online Security Blog
Google Online Security Blog
T
Threatpost
博客园 - 叶小钗
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
K
Kaspersky official 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)

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