Zanim ktoś powie, że ta tabela powinna zostać znormalizowana, najlepsze praktyki itp. Przyznam, że jest to stara tabela, którą mamy w SQL Server 2008 R2 i Nie mogę nic zrobić, żeby to zmienić. Po tym, ta tabela ma następujące kolumny:Znajdowanie zduplikowanych wartości w różnych kolumnach w tym samym wierszu
"PreparedBy", "PrelimApprovalBy", "Approval1Signer", "Approval2Signer"
Wszystkie te pola mają nazwy użytkownika lub NULL lub "". Chcę uzyskać wszystkie wiersze, w których ta sama nazwa użytkownika pojawia się w 2 LUB WIĘCEJ pól wymienionych powyżej. Jeśli 2 pola mają wartość NULL, są one zgodne z NOT i są zgodne z ustawą NOT, jeśli oba są "". Tak więc zarówno NULL, jak i "muszą być wykluczone, ponieważ nic nie znaczą.
oto co pomyślałem o tak daleko, ale nie jestem gustu IT:
myślę o sprawdzeniu wszystkich permutacji w klauzuli WHERE (sprawdzanie NULL i „”), robiąc coś wzdłuż linii z
WHERE PreparedBy = PrelimApprovalBy OR PreparedBy = Approval1Signer OR ...
Musi być lepszy sposób na zrobienie tego.
To jest niesamowite! To działa! Nigdy nie widziałem tej składni przed ... OD (WARTOŚCI ... AS X (n)). Nauczyłem się dzisiaj czegoś nowego! – Denis
Cieszę się, że mogę pomóc i przedstawić nową składnię. Więcej narzędzi w pasku narzędzi nie zaszkodzi. Również to rozwiązanie może z łatwością obsłużyć więcej kolumn, podczas gdy druga metoda szybko eksploduje pod względem wielkości i złożoności. – GilM
+1 wygląda schludnie. czy to działa dla dowolnego serwera sql? –