当前位置: 代码迷 >> Sql Server >> 数据如次.需要分离一下
  详细解决方案

数据如次.需要分离一下

热度:59   发布时间:2016-04-24 10:03:08.0
数据如下.需要分离一下.

LID
60000
60001
60010
99208
99209
99210
9999
HA014K1
HA014K2
HA016K1

数据如上例: 需要筛选出是 数字的 LID (是主键)  同时需要找出 LID 60000-60010 并且90000 - 99210 的所有 LID 的记录.

结果应该如下: 
LID 
60000
60001
60010
99208
99209
99210


------解决方案--------------------
select * from 表名 
where lid between 60000 and 60010
or lid between 90000 and 99210
order by lid 

------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(發糞塗牆)
-- Date    :2014-08-30 10:35:58
-- Version:
--      Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
-- May 14 2014 18:34:29 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go 
create table [tb]([LID] varchar(7))
insert [tb]
select '60000' union all
select '60001' union all
select '60010' union all
select '99208' union all
select '99209' union all
select '99210' union all
select '9999' union all
select 'HA014K1' union all
select 'HA014K2' union all
select 'HA016K1'
--------------开始查询--------------------------
SELECT *
FROM (
select CAST(LID AS INT )lid from [tb]
WHERE ISNUMERIC(lid)=1 )

WHERE (A.LID BETWEEN 60000 AND 60010 ) OR (A.LID BETWEEN 90000 AND 99210)
----------------结果----------------------------
/* 
lid
-----------
60000
60001
60010
99208
99209
99210
*/
  相关解决方案