これは私の試みです。それはかなりではありませんが、あなたがしているものを得るかもしれません。
CREATE TABLE #Sample (N varchar(5));
INSERT INTO #Sample
VALUES ('7.9'),('4.5'),('9'),('>10'),('6.7'),('11.7'),('>12'),('<=10'),('<9');
GO
SELECT *
FROM #Sample;
GO
WITH CTE AS (
SELECT *,
CASE WHEN N LIKE '>=%' OR N LIKE '<=%' THEN TRY_CONVERT(decimal(5,1),REPLACE(REPLACE(REPLACE(N,'>',''),'<',''),'=',''))
WHEN N LIKE '>%' THEN TRY_CONVERT(decimal(5,1),REPLACE(REPLACE(REPLACE(N,'>',''),'<',''),'=','')) + 0.1 --Adding .1 as it needs to be more than it's value
WHEN N LIKE '<%' THEN TRY_CONVERT(decimal(5,1),REPLACE(REPLACE(REPLACE(N,'>',''),'<',''),'=','')) - 0.1
ELSE TRY_CONVERT(decimal(5,1),N)
END AS Nr
FROM #Sample S)
SELECT N
FROM CTE
WHERE Nr >= 9;
GO
DROP TABLE #Sample;
--SQL 2008, just CONVERT
WITH CTE AS (
SELECT *,
CASE WHEN N LIKE '>=%' OR N LIKE '<=%' THEN CONVERT(decimal(5,1),REPLACE(REPLACE(REPLACE(N,'>',''),'<',''),'=',''))
WHEN N LIKE '>%' THEN CONVERT(decimal(5,1),REPLACE(REPLACE(REPLACE(N,'>',''),'<',''),'=','')) + 0.1 --Adding .1 as it needs to be more than it's value
WHEN N LIKE '<%' THEN CONVERT(decimal(5,1),REPLACE(REPLACE(REPLACE(N,'>',''),'<',''),'=','')) - 0.1
ELSE CONVERT(decimal(5,1),N)
END AS Nr
FROM #Sample S)
SELECT N
FROM CTE
WHERE Nr >= 9;
あなたは「いくつかのサンプルデータと結果あなたを投稿できる、それが増加/どちらか
<
または>
を持つ値の値が減少します期待していますか? http://www.sqlservercentral.com/articles/Best+Practices/61537/ – Larnu7.9、4.5、9、> 10、6.7、11.7、> 12 – sam
「> 10」と「> 12」は、値 '<= 10'は、**それらの値を除外する必要があると私は安全に仮定できますか? – Larnu