我正在嘗試編寫一個SQL查詢,該查詢僅返回特定列(比如'amount'列)包含僅包含一個數字的數字的行,例如只有'1's(1111111 ...)或只有'2's(2222222 ...)等SQL Server:如何選擇包含僅包含一個數字的值的行
此外,'amount'列還包含帶小數點的數字,這些類型的值也應返回,例如1111.11,2222.22,等
我正在嘗試編寫一個SQL查詢,該查詢僅返回特定列(比如'amount'列)包含僅包含一個數字的數字的行,例如只有'1's(1111111 ...)或只有'2's(2222222 ...)等SQL Server:如何選擇包含僅包含一個數字的值的行
此外,'amount'列還包含帶小數點的數字,這些類型的值也應返回,例如1111.11,2222.22,等
如果您正在使用SQL Server,那麼你可以試試這個腳本:
SELECT *
FROM (
SELECT CAST(amount AS VARCHAR(30)) AS amount
FROM TableName
)t
WHERE LEN(REPLACE(REPLACE(amount,'1',''),'.','') = 0 OR
LEN(REPLACE(REPLACE(amount,'2',''),'.','') = 0
我試着像這樣的地方1111111與列名替換:
Select replace(Str(1111111, 12, 2),0,left(11111,1))
如果你想使查詢通用,你不必指定每個可能的數字,你可以改變以下內容:
WHERE LEN(REPLACE(REPLACE(amount,LEFT(amount,1),''),'.','') = 0
這將始終使用第一個數字作爲字符串的其餘部分的比較
您試過了什麼?這不是一個代碼寫入服務。請相應地編輯您的問題。 –
試過以下內容:select * from [tablename] where amount = REPLICATE('1',len(amount)) – Tony