2010-12-31 9 views
0

ich habe Spalte mit dem Wert ProductId - 102, aber wenn ich dies als ProductId - 1 DeviceId - 02zeigen 2 Werte von einzelnem Wert

zeigen will, wie ich es zeigen?

Wie wird die Abfrage sein?

danke im voraus.

+0

Ist ProductId eine int oder Varchar oder Char-Spalte? –

+0

Ist das Gerät immer 2-stellig? Können Sie 97605 haben, wo ProductId = 976 und DeviceId = 05 – gbn

+1

Warum speichern Sie 2 verschiedene Informationen in derselben Spalte? Wenn Sie nach DeviceID suchen möchten, müssen Sie die gesamte Tabelle scannen. –

Antwort

2

Diese Geräte-ID übernehmen die rechten 2 Ziffern

VARCHAR Spalte ist. Wenn char, gegossen varchar und LTRIM

SELECT 
    REVERSE(SUBSTRING(REVERSE(MyCol), 3, 8000) AS ProductID, 
    RIGHT(MyCol, 2) AS DeviceID 

integer Spalte

SELECT 
    MyCol/100 AS ProductID, --integer arithmetic 
    MyCol % 100 AS DeviceID -- modulo 
+0

Vielen Dank gbn –

1

folgende sollten Sie

wählen Sie helfen 'ProductId - 102', 'ProductId -' + links (rechts ('ProductId - 102 ', 3), 1),' DeviceId - '+ rechts (' ProductId - 102 ', 2)

1

Sie werden feststellen, dass es mit SQL viele Möglichkeiten gibt, das gleiche Ziel zu erreichen. Vom Standpunkt der besseren Kodierung sollten Sie ProductID und DeviceID in 2 Spalten haben und dann, wenn Sie sie jemals als 1 zusammen anzeigen müssen, können Sie sie kombinieren. Auf diese Weise können Sie in der Suche schnell DeviceID 47 finden, ohne die gesamte Datenbank analysieren zu müssen.

können Sie eine Tabelle mit dem Namen Produkte übernehmen haben und ProductID hat einen Wert '1' und DeviceID war '02'

Alles, was Sie tun müssen, ist

SELECT ProductID + DeviceID als CombinedID

und es wird zurück: ProductID - 102

Wenn Sie noch einen gültigen geschäftlichen Grund haben es, wie Sie wollen zu tun:

Nehmen wir an, Sie haben eine Tabelle namens PRODUKTE und ProductID hat einen Wert ‚ProductID - 102‘

Wenn Sie die volle ProductID Verwendung

SELECT ProductID von Produkte

möchten Wenn Sie möchten, trennen out das Produkt aus dem Geräte-ID

Ihre Anfrage SELECT LEFT (ProductID, len (ProductID) -2) + 'Geräte-ID -' wäre + RIGHT (ProductID, 2) von Artikel

Dies gibt Ihnen die ProductID und DeviceID ausgebrochen ... hoffe, dass hilft

Verwandte Themen