,
create table dbo.Parent (
Id bigint NOT NULL,
TypeId int NOT NULL
)
create table dbo.Child (
Id bigint NOT NULL,
ParentId bigint NOT NULL,
TypeId int NOT NULL,
varcharColumn varchar(300) NULL
)
select cast(c.varcharColumn as int)
from dbo.Parent p (nolock)
inner join dbo.Child c (nolock)
on p.Id = c.ParentId
and c.TypeId = 2
where p.TypeId = 13
inner join,
, , SQL- " " . , .
, ,
SELECT MAX( Cast(dealer_number AS INT) + 1)
FROM dealer_number dn
INNER JOIN dealer d
ON dn.dealer_seq = d.dealer_seq
INNER JOIN dealer_type(nolock) dt
ON dt.dealer_number_seq = dn.dealer_number_seq
INNER JOIN program_dealer_type(nolock) pdt
ON pdt.program_dealer_type_seq = dt.program_dealer_type_seq
WHERE
Isnumeric(dealer_number) = 1 AND
pdt.dealer_type = 'Dealer'
AND d.program_seq = 57
varchar '10054239051' int.
Isnumeric 100% , - .
Isnumeric ,
Isnumeric,
SELECT MAX( Cast(dealer_number AS INT) + 1)
FROM dealer_number dn
INNER JOIN dealer d
ON dn.dealer_seq = d.dealer_seq
INNER JOIN dealer_type(nolock) dt
ON dt.dealer_number_seq = dn.dealer_number_seq
INNER JOIN program_dealer_type(nolock) pdt
ON pdt.program_dealer_type_seq = dt.program_dealer_type_seq
WHERE
pdt.dealer_type = 'Dealer'
AND d.program_seq = 57
now I just removed this preprocessing filter and it just solves the problem, but 100% proof that I didn’t receive any alphanumeric numbers, I had to use case in select
SELECT MAX(case WHEN
ISNUMERIC(DEALER_NUMBER )=1
THEN Cast(dealer_number AS INT)
ELSE 0 END
+ 1)
FROM dealer_number dn
INNER JOIN dealer d
ON dn.dealer_seq = d.dealer_seq
INNER JOIN dealer_type(nolock) dt
ON dt.dealer_number_seq = dn.dealer_number_seq
INNER JOIN program_dealer_type(nolock) pdt
ON pdt.program_dealer_type_seq = dt.program_dealer_type_seq
WHERE
pdt.dealer_type = 'Dealer'
AND d.program_seq = 57
Above will solve both of these problems. Anyone had a point of view on this most long-awaited. :)
source
share