t0212_1 t0212_2
884999999 GCP-9 Company A
8849999 GCP-7 Company B
@val = 884999999 下面是我的问题:
Select * Company
WHERE t0212_1= (LEFT(CONVERT(BIGINT,@val),convert(int,substring('GCP-9',5,2)))) OR
t0212_1= LEFT(CONVERT(BIGINT,@val),convert(int,substring('GCP-7',5,2))) 当我搜索8849999,8849999个节目时(这是对的)。
当我搜索884999999个节目时,有884999999个节目(这是对的)和8849999个节目(错误)。
怎么办,请帮帮忙
谢谢,如果你不明白我的简短解释,你可以向我核实。
发布于 2016-08-11 18:57:57
您的筛选条件为输入中的7或9个字符(DECLARE @val INT = 884999999),应与列(t0212_1)值匹配。
根据您的筛选器,您将获得两条记录,因为这两条记录与您的筛选器匹配。
您可以使用此SQL
SELECT *
FROM @Company
WHERE t0212_1 = (LEFT(CONVERT(BIGINT, @val), convert(INT, substring(t0212_2, 5, 2))))https://stackoverflow.com/questions/38893781
复制相似问题