Frage

Select a, b, c from table where a in (1, 2, 3)

Was passiert, wenn sich die Liste in einer Spalte befindet?

Ich versuche es mit folgendem Fehler:

Select a, b, c from a in b

Tut mir leid, dass ich meine Frage nicht klargestellt habe.

Es ist nicht über verbinden oder in (wählen Sie b aus der Tabelle aus)

Der Typ der Spalte B ist nvarchar, die Daten sind eine Liste, etwa „1,2,5“.

Spalte ein Typ ist int.

Keine korrekte Lösung

Andere Tipps

Ihre Frage nach dem Lesen, das ist, was Sie wollen:

SELECT
    a,b,c
FROM
    tblA
WHERE
    b LIKE CAST(a as nvarchar) + ',%'
    OR b LIKE '%,' + CAST(a as nvarchar) + ',%'
    OR b LIKE '%,' + CAST(a as nvarchar)

Das sollte es tun.

Viele Antworten in der richtigen Richtung, aber ich denke, das wird wirklich funktionieren:

SELECT a, b, c
FROM table
WHERE ',' + b + ',' LIKE '%,' + CAST(a as varchar) + ',%'

Sie können dies durch die Durchsetzung B beginnt beschleunigen und endet mit einem Komma. Oder noch besser, um die Datenbank normalisieren und die Spalte B mit einer Eins-zu-viele-Beziehung zu seiner eigenen Tabelle bewegen.

In SQL hat eine Spalte normalerweise einen der sogenannten „skalaren“ Datentypen:Zahlen, Datum/Uhrzeit, Zeichenfolgen – siehe z.B. MSDN.Wenn Sie besser erklären, in welchem ​​Sinne Sie „eine Liste“ in die Spalte aufgenommen haben b, und wie, z.B.zeig uns das CREATE TABLE a Aussage, wir können Ihnen vielleicht besser helfen!

Siehe SQL Query-Hilfe benötigen, um eine gespeicherte Prozedur Liste Parameter Abgleich mit einzelnen Spalten . Es zeigt, wie eine benutzerdefinierte Funktion schreiben, die Ihr „Liste“ -Spalte nehmen und eine Tabelle zurück, die Sie gegen eine verbinden können Sie sind auswählen.

Ich glaube, Sie wollen die Tabellen verknüpfen?

SELECT a, b, c
FROM a
JOIN b ON a.ID=b.ID
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top