Использовать cast для фильтра в sql server

 select  (select NOMCLI from CARROS where cast(IDCLI as int) = idreg1) as NOMCLI, fecha 
  from replog 
    where movimiento = 'ALT' and TABLA = 'CARROS' and usuario = 'sa'

У меня есть пример здесь где idcli он entero:327 и idreg1 десятичный: 327,00.

Я делаю эту консультацию, но nomcli он приносит мне все их недействительные: поскольку он применился бы cast чтобы делать фильтр? или если есть другой способ.

3
задан 28.12.2016, 22:35
0 ответов

Сначала, что совсем, сравнение было бы должно функционировать как дела (хотя я не понимаю, почему ты конвертируешь IDCLI в целое число, если уже это был этот тип информации).

Так или иначе, лучший способ это делать - с одним JOIN, не subquery:

SELECT  c.NomCli,
        r.fecha
FROM replog r
LEFT JOIN carros c
    ON IdCli = CAST(idreg1 AS INT)
WHERE movimiento = 'ALT' 
AND TABLA = 'CARROS' 
AND usuario = 'sa';
2
ответ дан 03.12.2019, 17:57