Konvertieren Spalte in string in SQL-Select
Ich bin auf der Suche konvertieren einer Spalte in string, wo die Spalte eine select-Anweisung und dann concat mit anderen Spalte. Dies ist, wo meine Verwirrung tritt auf, wenn mit CONVERT oder CAST.
Beispiel:
SELECT employeeID
,name
,location
,(SELECT COUNT(DISTINCT loginsFailed)
FROM users
WHERE (users.employeedID = userDetails.employeeID)
AND (users.startdate = 01-01-2013) as LoginCountFailed
,(SELECT COUNT(DISTINCT logins)
FROM users
WHERE (users.employeedID = userDetails.employeeID)
AND (users.startdate = 01-01-2013) as LoginCount
FROM userDetails
Nun, diese Abfrage funktioniert perfekt, liefert die richtige Anzahl der Anmeldungen und nicht wie zahlen. Aber ich will diese ganze Zahl als einen string, so kann ich eine Spalte. Es gibt einen Grund, warum dies muss eine Spalte als Zeichenkette.
Möchte ich nur 4 Spalten, nicht 5. Die login-Spalte, die ich haben will, ist loginCountFailed/LoginCount. Zum Beispiel: 3/12. Ich brauche es als einen string, da kann man nicht dividieren Sie durch eine 0 und es gibt Zeiten, in denen der Nenner 0 ist.
'3/12'
? Oder das Ergebnis der division, also 4
? Wollen Sie nur eine Zeichenfolge zur Vermeidung einer Division durch null Fehler???InformationsquelleAutor user1188241 | 2013-03-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für concatanating zahlen in MSSQL-2005 sollten Sie verwenden Sie CAST
loginsFailed und loginCount oben ist eigentlich dein
select count distinct
FragmenteIch hoffe, dass das funktioniert
Ich habe eine Probe
Dieser funktioniert. Ich kann sehen, wo ich war und machte den Fehler. Ich warf die sub-select-Anweisung stimmt nicht mit der alias wird dort. Dies war das verwirrend Teil für mich.
Mark beantwortet. Danke für Eure Hilfe.
InformationsquelleAutor Serkan Arıkuşu
Quelle
InformationsquelleAutor Woot4Moo
Was Sie wollen zu tun haben, ist eine case-Anweisung zu behandeln Division durch null Logik, nicht wechseln Sie zu einem string für numerische Daten.
Diese Werte sind immer noch gebaut mit der Anweisung ausgewertet. Es ist einfach verbindet die Zählt() in einer einzigen untergeordneten select-und dann die division, bedingt auf einige Anmeldungen. Hast du es laufen?
InformationsquelleAutor Kyle Hale
InformationsquelleAutor Praveen Nambiar
Ich denke, dies wird den trick tun
InformationsquelleAutor Ajo Koshy
Ich denke, Sie können nur eine äußere Abfrage hier:
Tut mir Leid, dass. Sie könnten versuchen jetzt (ich habe es ein bisschen geändert) und poste die genaue Fehlermeldung (wenn es dann immer noch Probleme hat)?
InformationsquelleAutor PM 77-1