Create table temp
(
ID nvarchar(50)
)
ID包含因此被定義爲VARCHAR當時在某些情況下,零數值筆 - 爲多個SQL語句的範圍
如何獲得值與3555開始3999和8000 9999.There沒有具體的裁定的長度總是4 如:
3555
35688888888888
3590909
8000
85805667
所有的值是有效的,並且是牽強。
請讓我知道對於上述方案
Create table temp
(
ID nvarchar(50)
)
ID包含因此被定義爲VARCHAR當時在某些情況下,零數值筆 - 爲多個SQL語句的範圍
如何獲得值與3555開始3999和8000 9999.There沒有具體的裁定的長度總是4 如:
3555
35688888888888
3590909
8000
85805667
所有的值是有效的,並且是牽強。
請讓我知道對於上述方案
你可以用LIKE
使用少量表達式。如果你有一個ID
索引,它會使用它,所以它會很有效率。事情是這樣的:
SELECT
ID
FROM
temp
WHERE
ID LIKE '3[5-9]%'
OR ID LIKE '[89]%'
LIKE '3[5-9]%'
與3
和第二個字符是5
或6
或7
或8
或9
開頭的字符串相匹配。這兩個字符後可以有0個或更多的其他字符。任何數量的額外字符。
LIKE '[89]%'
匹配任何以8
或9
和之後的任意數字字符開頭的字符串。
謝謝。 – user2545157
嗨範圍是從3555及以上..你可以請讓我知道如何實現它 – user2545157
@ user2545157,目前的答案應適用於任何長度的價值。 '%'匹配任意數量的字符。 –
T-SQL語句可以提取前四個字符,將其轉換成一個數字,這樣的查詢:
SELECT
[ID]
FROM temp
WHERE convert(int,LEFT([ID],4)) BETWEEN 3500 AND 3999
OR convert(int,LEFT([ID],4)) BETWEEN 8000 AND 9999
對於大量的數據如此將會非常慢,所以如果你需要表現,我會建議在表格中加一個索引爲int
的列,在那裏你存儲代表ID
前四位數字的數字。
你在找什麼?你有桌子,你想要檢索數據?你想要在表中生成數據?要麼 .. ? –
你試過了什麼? 「LIKE」操作符或「LEFT」和「SUBSTRING」函數可以做你需要的東西 – dlatikay