我正在尝试编写一个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