我只是在特定列值的最后一位不是零时才从表格中选择行。如何在SQL中引用列值的最后一位数字
SELECT *
FROM #table
WHERE RIGHT(column, 1) BETWEEN 1 AND 9
未返回正确的值。我认为这是因为数据以科学记数法存储为字符串。请帮忙!
更新:修复它!它原来是与数据类型的问题
我只是在特定列值的最后一位不是零时才从表格中选择行。如何在SQL中引用列值的最后一位数字
SELECT *
FROM #table
WHERE RIGHT(column, 1) BETWEEN 1 AND 9
未返回正确的值。我认为这是因为数据以科学记数法存储为字符串。请帮忙!
更新:修复它!它原来是与数据类型的问题
您可以使用通配符操作符即LIKE
Select * from Your Table where COlumn Name Like '%0';
欲了解更多详情,您可以在给定的链接访问
你可以试试这个,
SELECT *
FROM #table
WHERE SUBSTRING(REVERSE(column), 1, 1) = '0'
不知何故,没有返回任何结果 –
试试SUBSTRING(REVERSE(RTRIM(列)),1,1)='0' – Jigar
什么数据? 如果该列有尾随空格,那么你不会得到行。第二条选择声明;用rtirm(c1)删除空格。更新了答案以匹配更新后的问题。
declare @test table (
c1 varchar(10)
)
insert into @test (c1) values ('row 0');
insert into @test (c1) values ('row 0 ');
insert into @test (c1) values ('row 1');
insert into @test (c1) values ('row 1 ');
insert into @test (c1) values ('row 2');
insert into @test (c1) values ('row 2 ');
select * from @test where right(c1, 1) != '0'
select * from @test where right(rtrim(c1), 1) != '0'
我不确定它是否有间距 - 我可以使用rtrim而不冒险切断某些东西重要? –
是的。 rtrim仅删除空格(ascii 32)。 – Durus
mysql或sql-server? – TriV
列是什么类型的字段? char或varchar? –
'RIGHT(trim(column),1)='0''?非常确定正确的是SQL服务器是#table,如果它是char数据,那么它被填充为相同的大小...因此可能需要修剪。 – xQbert