Sono completamente nuovo a SQL, ma diciamo che sul StackExchange Data Explorer, voglio solo elencare i primi 15 utenti di reputazione, e ho scritto qualcosa di simile:Principiante SQL: evitando ripetuta espressione
SELECT TOP 15
DisplayName, Id, Reputation, Reputation/1000 As RepInK
FROM
Users
WHERE
RepInK > 10
ORDER BY Reputation DESC
Attualmente questo dà un Error: Invalid column name 'RepInK'
, che ha un senso, credo, perché RepInK
non è una colonna in Users
. Posso facilmente risolvere questo problema dicendo WHERE Reputation/1000 > 10
, essenzialmente ripetendo la formula.
Quindi le domande sono:
- Posso effettivamente utilizzare la "colonna"
RepInK
nella clausolaWHERE
?- faccio a forse bisogno di creare una tabella/vista virtuale con questa colonna, e poi fare una query
SELECT/WHERE
su di esso?
- faccio a forse bisogno di creare una tabella/vista virtuale con questa colonna, e poi fare una query
- Posso citare un'espressione, ad esempio,
Reputation/1000
, quindi devo solo per ripetere i nomi in pochi luoghi al posto della formula?- Come si chiama questo? Una macro di sostituzione? Una funzione? Una procedura memorizzata?
- C'è un foglio elettronico SQL, un glossario di termini, specifiche della lingua, tutto ciò che posso usare per raccogliere rapidamente la sintassi e la semantica della lingua?
- ho capito che ci sono diversi "gusti"?
Non è possibile utilizzare le istruzioni 'SELECT' come condizioni' WHERE', nel tuo caso 'RepInk', poiché t hey sarà risolto dopo il 'WHERE', è un paradosso e il server esploderà insieme all'intero edificio. – Ben