Tworzyłem kolumnę obliczeniową dla wszystkich pól, z których niektóre są potencjalnie puste.Łączenie ciągów programu SQL Server z wartością zerową
Problem polega na tym, że jeśli dowolne z tych pól ma wartość null, cała obliczona kolumna będzie pusta. Rozumiem z dokumentacji Microsoft, że jest to oczekiwane i można je wyłączyć za pomocą ustawienia SET CONCAT_NULL_YIELDS_NULL. Jednak nie chcę zmienić tego domyślnego zachowania, ponieważ nie znam jego wpływu na inne części SQL Server.
Czy jest dla mnie sposób, aby sprawdzić, czy kolumna jest pusta i tylko dołączyć jej zawartość w obliczonej formuły kolumny, jeśli nie jest zerowy?
"Coalesce" to nazwa funkcji standardowej ANSI, ale ISNULL jest łatwiejsza do napisania. –
I ISNULL wydaje się być odrobinę szybszy także na SQL Server - więc jeśli chcesz użyć go w funkcji, która łączy łańcuchy w kolumnę obliczeniową, możesz zrezygnować ze standardu ANSI i wybrać szybkość (zobacz Adam Machanic: http: //sqlblog.com/blogs/adam_machanic/archive/2006/07/12/performance-isnull-vs-coalesce.aspx) –
Po prostu użyłem tego zapytania Isnull (,), to było dużo podczas łączenia wartości i jedna z nich była zerowa również stała się nieważna. – Sizons