Zostałem zapytany, co zwróci poniższe proste zapytanie.Dane wyjściowe dodawania liczby całkowitej i łańcucha znaków w SQL Server
Select 5 + '4'
Jako, 4 jest typem łańcucha, oczekuję, że zapytanie wygeneruje błąd. Stwierdziłem, że się mylę, przetestowałem, a wynik wynosił 9. Jak zwraca sumę?
Jest konwertowany na liczbę, a błąd występuje tylko w przypadku niepowodzenia. –
Należy pamiętać, że jest to zachowanie specyficzne dla produktu. (ANSI SQL na to nie pozwala.) – jarlh
Od operacji dodawania "4" zostanie dodane do 5 i tak dalej. Teraz 5 jest pierwszym operandem i określa jego typ na int. Chociaż następny operand jest ciągiem znaków, próbuje go przekonwertować na typ pierwszego operandu i ponieważ jest w stanie dodać oba i daje wynik 9. jeśli drugi operand zawierał nieliczbową konwersję znaków, to się nie powiedzie, a otrzymasz błąd. –