Wpis z mikrobloga

#programowanie #sql #sql #programista15k

jak zrobic JOIN i zastosowac SUBSTRING zeby tylko porownal recordy gdzie assignmentNumber i employeeNumber w obu tabelach moga miec max 11 characters ale ja tylko potrzebuje piersze 8 cyfr

SELECT *
FROM ADStarterLeaverDetails AD
JOIN ADExtractedData EXTR
ON AD.employeeNumber = EXTR.assignmentNumber
JOIN AUTHN
Account ACC
ON EXTR.assignmentNumber = ACC.[User]
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@locheck: to jakas jednorazowa akcja czy staly mechanizm? Jak staly to sugeruje jednak zrobic kolumne z oczyszczonymi danymi, bo join po funkcji to wydajny raczej nie bedzie...
  • Odpowiedz
@locheck: tak jak pisze @Darjo - jeżeli to ma być ciągle używane to nie polecam tego rozwiązania ale jak chcesz jednorazowo coś znaleźć to potraktuj te wartości funkcją left()
  • Odpowiedz
Nie wiem jak mssql, ale jesli nie pozwala na funkcje w join to zawsze mozna zrobic iloczyn kartezjanski tabel przecinkiem i joinowac je warunkiem w where, tam na pewno da sue uzyc dunkcji
  • Odpowiedz
@locheck nie wiem jak duże będą te tabele ale możesz zrobić sobie 2 cte i potem joinować cte w tym jobie np.

with cte1 as
(
SELECT *,LEFT(AD.employeeNumber,8) as col
FROM ADStarterLeaverDetails
  • Odpowiedz