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

    query + isnumeric

    Ciao a tutti
    devo estrarre dei dati da una tabella (allegati) e convertire un dato da stringa in numerico
    dopo averlo pulito della sua estensione '.jpg', ma il problema non è questo perchè la query che leggete sotto funziona estraggo il dato converto ecc ecc
    più che un problema ho una curiosità
    intanto ecco la query
    Codice PHP:
    SELECT     allegati.ID_allegatiallegati.ID_tipoallegatoallegati.ID_annunciallegati.allegatoannunci.ID_advREPLACE(allegati.allegato'.jpg''') AS al
    FROM         allegati INNER JOIN
                          annunci ON allegati
    .ID_annunci annunci.ID_annunci
    WHERE     
    (annunci.ID_adv IS NULL) AND (CASE WHEN isnumeric(REPLACE(allegato'.jpg''')) = 1 THEN CAST(REPLACE(allegato'.jpg''') AS integerEND BETWEEN 
                          9 
    AND 22
    ripeto la query funziona o meglio funzionerebbe se non fosse che ad un certo punto mi da un errore di conversione del integer perchè incontra un dato 23032009292 supera i limiti e si ferma

    la mia domanda è questa
    quel dato non dovrebbe essere considerato perchè la clausola where (annunci.ID_adv IS NULL) lo esclude, fa cioè parte di quei dati che non devo ne voglio castare la domanda è perchè la query correttamente non lo include nella visualizzazione ma lo include nel cast ?

    spero di essermi capito
    Grazie a tutti
    Marco

  2. #2
    togli la WHERE e metti tutto nella ON....

  3. #3

    Gulp

    Grazie..
    un piccolo esempio? non ho capito bene cosa fare

    grazie di nuovo
    Marco

  4. #4
    Ciao,

    come da regolamento, va inserito nel titolo il nome del database perché obbligatorio e va specificato nel thread, se non indicato nel titolo, perché necessario per capire di che si parla.

    Gentilmente, indicheresti il nome del piattaforma per il database utilizzata?

    Grazie
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5

    scusate

    Scusa mi sono dimenticato
    il db è sql express!!

  6. #6
    un esempio? cambia da

    codice:
    SELECT * FROM TABLE1 JOIN TABLE2 ON TABLE1.COLUMN1=TABLE2.COLUMN2 WHERE TABLE2.COLUMN2=qualcosa
    a

    codice:
    SELECT * FROM TABLE1 JOIN TABLE2 ON TABLE1.COLUMN1=TABLE2.COLUMN2 AND TABLE2.COLUMN2=qualcosa
    non corrisponde a quanto ti avevo detto?

  7. #7

    Si grazie

    Ok domani ci provo

    Grazie per la risposta
    Marco

  8. #8

    Provato

    Ciao
    Ho provato il tuo suggerimento, ma non funziona
    anche con and cicla su tutta la tabella come se il filtro (annunci.ID_adv IS NULL)
    non venisse eseguito o meglio come se venisse eseguito dopo

    qualche suggerimento?

  9. #9
    posta la query modificata

  10. #10

    credo

    di aver trovato

    Codice PHP:
    SELECT     allegati.ID_allegatiallegati.ID_tipoallegatoallegati.ID_annunciallegati.allegatoannunci.ID_advREPLACE(allegati.allegato'.jpg''') AS al FROM         allegati RIGHT JOIN                       annunci ON allegati.ID_annunci annunci.ID_annunci WHERE     (annunci.ID_adv IS NULL) AND (CASE WHEN isnumeric(REPLACE(allegato'.jpg''')) = 1 THEN CAST(REPLACE(allegato'.jpg''') AS integerEND BETWEEN                       9 AND 22
    con un right join adesso cicla effettivamente solo sugli annunci diove ID_direct_adv e NULL
    (almeno credo)

    Grazie e ciao

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 © 2025 vBulletin Solutions, Inc. All rights reserved.