Ich habe zwei Tabellen (#temp1
und #temp2
), wie im folgenden Code gezeigt und ich versuche, die passende statische ID für die Werte in #temp2
Tisch zu bekommen, aber es gibt Probleme mit dem folgenden Code, so dass es null staticID
Wert zurückzugibt .Wie erhalte ich eine ID aus der Tabelle mit Ersetzen, Teilzeichenfolge charindex in SQL Server 2012?
Ich bin mir nicht sicher, wo es falsch ist, kann jemand mich wissen lassen, was der Fehler ist, den ich in dem unten stehenden Code mache?
BEGIN
CREATE TABLE #temp2
(
staticname VARCHAR(160),
)
INSERT INTO #temp2
VALUES ('Per capita disappearance, carcass weight(456)'),
('Production(286)')
CREATE TABLE #temp1
(
idnum INTEGER IDENTITY(1, 1),
statisticname VARCHAR(256),
staticid INTEGER
)
INSERT INTO #temp1
VALUES ('Per capita disappearance, carcass weight',
'144'),
('Production',
'143')
SELECT
Ltrim (Rtrim (Replace (T2.staticname, Substring(T2.staticname,
Charindex('(', T2.staticname, 0),
Len(T2.staticname) - (Charindex('(', T2.staticname, 0) - 1)), ''
))),
T1.staticid
FROM
#temp2 T2
LEFT JOIN
#temp1 T1 ON T2.staticname = T1.statisticname
DROP TABLE #temp1
DROP TABLE #temp2
Sie sollten diese in Speichertabellen werden. Temp2-Tabelle sollte als separate Felder wie Temp1 aufgeteilt werden. – Chuck
Ihre Beitrittskriterien werden dort keine Übereinstimmung finden. Du würdest dir selbst einen großen Gefallen tun, indem du nicht alles in Großbuchstaben machst. Es ist so schwer zu lesen. Und Sie sollten wirklich nicht mehrere Werte in eine einzelne Spalte setzen. Es ist ein echter Schmerz, mit ihm zu arbeiten. –
Dies ist nur ein Beispiel für einen Teil im Code, wo es nicht funktioniert ... Problem ist die # temp2 Werte hat Name (einige Zahl) drin. Ich muss den Zahlenteil entfernen und holen Sie die ID für die passenden Namen .... Hat das obige Problem eine Lösung? –