Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [SQL] Problema con Union

    Salve regà, ho un piccolo problema tattico con la union...

    Premessa, uso SQL Server

    Dunque, devo mostrare a video il risultato di una select fatto in questo modo.

    Prima vanno tutte le righe il cui id si uguale a X.

    Poi vanno tutte le altre righe ordinate in maniera creascente per id.

    Va da se che la sintassi sarà simile a questa:

    select *
    from (varie tabelle collegate)
    where id=x

    union all

    select *
    from (varie tabelle collegate)
    where id<>x


    Ora il problema subentra quando tento di utilizzare l'order by...
    Se lo metto dopo la prima select accusa e mi da errore, se lo metto a tutte e due, accusa e da errore... se lo metto solo dopo la seconda select va bene... ma ordina tutto

    Quindi se nella seconda select mi pesca tuple con id inferiore alle tuble della prima select me le mette prima... e addio effetti della union...

    Poi, altra cosa strana, sono costretto a mettere union all perchè se metto union e basta mi da questo errore:

    Server: Msg 8163, Level 16, State 4, Line 1
    The text, ntext, or image data type cannot be selected as DISTINCT.

    NB. di distinct non ce n'è neanche l'ombra...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    338
    potresti aggiungere un campo calcolato tipo bool che è false per id=x e true altrimenti e poi ordinare prima per quel campo

  3. #3
    Poi ho risolto in maniera alternativa, faccio due select separate una appresso all'altra che era quello che effettivamente volevano

    <cut>

    E' sta pagina quì, come vedi ho risolto che le righe in rosa si vedono sempre, le altre a seconda della selezione e della pagina

    Tnx cmq

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.