W instrukcji SELECT chcę ponownie użyć kolumny obliczeniowej w klauzuli WHERE. Czy jest jakiś sposób to zrobić w SQLserver?Ponownie użyj kolumny obliczeniowej w klauzuli WHERE
uproszczony przykład:
robocza, ale z wielokrotnym obliczenia:
SELECT field1, concat(field2, field3) AS calc_field
FROM MyTable
WHERE concat(field2, field3) LIKE 'A%'
życzenia:
SELECT field1, concat(field2, field3) AS calc_field
FROM MyTable
WHERE calc_field LIKE 'A%'
Czy obawiasz się, że na twoim pierwszym przykładzie obliczenia są wykonywane dwukrotnie? – AakashM
@AakashM obawiam się nie tylko, że obliczenia są wykonywane dwa razy (nie jestem tego pewien, czy jest to wewnętrznie zoptymalizowany?) ... ale również wielokrotnie przepisuję ten sam kod w bardziej złożonych instrukcjach. – MarcM
W zależności od tego, jak często chcesz to filtrować, możesz umieścić kolumnę obliczeniową na stole. – cloudsafe