我需要從給定的表中找到 Claims,其程序代碼介于“Q5000”和“Q5090”之間。我能夠為 Int 代碼撰寫函式,但不確定如何最好地處理 SQL Server 中的字符范圍?
我可以手動撰寫所有代碼并過濾它們,但是有什么方法可以提供第一個和最后一個值,然后 SQL 生成完整的值集。
Select *
from dbo.claims
where ProcedureCode in ('Q5000',Q5001','Q5002',....,'Q5090')
uj5u.com熱心網友回復:
你可以試試這個簡單的黑客
SELECT * FROM dbo.claims WHERE ProcedureCode LIKE 'Q50__' AND TRY_CONVERT(INT, RIGHT(ProcedureCode, 2)) < 91;
uj5u.com熱心網友回復:
另一個執行緒中的這個答案可能對您有所幫助。
或者
你也可以嘗試這個假設相同的單個字符是起始字符。
SELECT * FROM dbo.claims WHERE RIGHT(ProcedureCode, LEN(ProcedureCode)-1) BETWEEN 5000 AND 5090
uj5u.com熱心網友回復:
如果字串的長度相同,并且以相同的字母開頭?
然后你可以簡單地使用BETWEEN.
Select *
from dbo.claims
where ProcedureCode BETWEEN 'Q5000' AND 'Q5090'
你看,字符比較的問題在于長度不同。
例如,字串“2”比字串“10”大。
因為字符“2”在“1”之后。
但是“A02”小于“A10”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387426.html
標籤:sql sql-server 查询语句
上一篇:delete陳述句之間的區別
下一篇:檢查單選按鈕是否在ejs中被選中
