2016-08-08 17 views
1

Ich habe ein Problem mit jeder mir bekannten Sprache zu lösen. Ich benutze SQL deshalb gefragt, ob es eine Hilfe, die ich für das folgende Problem bekommen könnte:T-SQL - Ist das möglich (lösen)

das folgende Wort:

CAPRICORN 

Einwechslung:

A = @ 
I = ! 
O = 0 (zero) 

ich die Kombinationen aller finden müssen die Rechtschreibung Steinbock mit und ohne die Substitute

Könnte mir jemand in die richtige Richtung zeigen, was zu verwenden oder sogar eine Lösung?

Mit freundlichen Grüße

+3

Dies ist keine Operation, die am besten in SQL ausgeführt wird. Es ist möglich, aber nicht einfach. Das hört sich auch nach Passwort-Hacking an. Vielleicht möchten Sie in der Frage erklären, warum Sie das tun wollen. –

+0

Es ist Passwort-Hacking - aber auf unserem eigenen System für Bildungszwecke. Ja, aber leider ist die einzige Sprache, die ich selbst verwenden kann, SQL – OneUnited

Antwort

0

Probieren Sie etwas entlang der Linien von

LIKE 'C[[email protected]]PR[I!]C[O0]RN' 
+0

Ich denke OP versucht, Datensätze mit allen möglichen Kombinationen zu generieren, nicht alle vorhandenen Datensätze mit allen möglichen Kombinationen abfragen. – JNevill

+0

Ich lese es als finden, aber Sie könnten gut sein! – OTTA

13

Dies ist kartesisches Produkt oder CROSS in SQL JOIN.

select cast('C' as varchar(50)) + a +'PR' +i + 'C' + o + 'RN' 
from (values ('A'), ('@')) t1(a) 
cross join (values ('I'), ('!')) t2(i)  
cross join (values ('O'), ('0')) t3(o) 
+0

Dies ist eine gute kreative Lösung. Mein Verstand dachte rekursiv sql, aber klar verpasste ich die einfachere Antwort. Nett! – JNevill

+0

Genie! Vielen Dank – OneUnited

+1

'Concat ('C', a, 'PR', ich, 'C', o, 'RN')' ist etwas schönere Syntax vielleicht (wenn das OP auf einer aktuellen Version ist) –