sql – 复杂的字段“string – number – string”
发布时间:2021-01-19 15:14 所属栏目:[编程] 来源:网络整理
导读:基本上,我试图按名称对表进行排序.该表相对较大,但为了示例,我只发布了一列.列位于下方 Station===ANTIL WELL 1ANTIL WELL 2BASELINE CALIFORNIA WELLEPA WELL 6EPA WELL 7EPA WELL 108EPA WELL 109EPA WELL 110EPA WELL 111EPA WELL 112EPA WELL 108S 上面的
基本上,我试图按名称对表进行排序.该表相对较大,但为了示例,我只发布了一列.列位于下方 Station === ANTIL WELL 1 ANTIL WELL 2 BASELINE & CALIFORNIA WELL EPA WELL 6 EPA WELL 7 EPA WELL 108 EPA WELL 109 EPA WELL 110 EPA WELL 111 EPA WELL 112 EPA WELL 108S 上面的那种是我尝试这样做的: order by left(station,LEN(station) -PATINDEX('%[^0-9]%',REVERSE(station))+1),CONVERT(int,REVERSE(LEFT(REVERSE(station),PATINDEX('%[^0-9]%',REVERSE(station)) - 1))) 但是,我无法对那EPA WELL 108S进行排序.我需要它介于EPA WELL 108和EPA WELL 109之间,我尝试了许多不同的方法. EPA之后,电台列表也在继续. 解决方法该解决方案比所选答案更可靠.如果站内有超过1个号码,如“EPA WELL 5 7”,则此答案可能无法给出预期答案.这个解决方案是用’0’填充数字,所以比较将考虑所有数字8位数.DECLARE @Table1 table([station] varchar(26)) INSERT INTO @Table1 ([station]) VALUES ('ANTIL WELL 2'),('ANTIL WELL 1'),('BASELINE & CALIFORNIA WELL'),('EPA WELL 7'),('EPA WELL 6'),('EPA WELL 108'),('EPA WELL 109'),('EPA WELL 110'),('EPA WELL 111'),('EPA WELL 112'),('EPA WELL 108S'),('EPA WELL 111108') ; SELECT station FROM @table1 ORDER BY CASE WHEN station not like '%[0-9]%' THEN station ELSE STUFF(station,PATINDEX('%[0-9]%',station),replicate('0',station) - len(station) + PATINDEX('%[0-9]%',reverse(station)) + 6)) END * GoatCD的答案不会在我的测试数据中给出正确的顺序. 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
网友评论
推荐文章
-
我从这里生成一个视图: create or replace view date...[详细]
-
sql – LEFT JOIN(OUTER JOIN)与INNER JOIN的条件
SELECT A.COL1,B.COL1,C.COL1FROM TABLEA ALEFT JOIN ...[详细]
-
本篇章节讲解CI框架(CodeIgniter)公共模型类定义与用...[详细]
-
解决form中action属性后面?传递参数 获取不到的问题
如下所示: echo " 您将更新商品编号为 $p_id 的商品...[详细]
-
sql – Oracle是否为Number数据类型存储尾随零?
当我在表中存储数值并在SQL Developer中查询该表时,它...[详细]
-
本篇章节讲解php基于SQLite实现的分页功能。供大家参...[详细]
-
本篇章节讲解PHP封装的PDO数据库操作类。分享给大家供...[详细]
-
这里要说明一下 因为本人比较懒 博客中相关文章的内容...[详细]
-
今天PHP站长网 52php.cn把收集自互联网的代码分享给大...[详细]
-
本篇章节讲解PHP实现删除多重数组对象属性并重新赋值...[详细]
热点阅读