Je suis en train d'exécuter la requête ci-dessous du résultat affichant comme dans une ligne, mais au lieu de l'imprimer une ligne, je souhaite diviser en deux lignes différentes et imprimer la valeur.
Query SQL: P> < Pré> xxx pré>
sortie: p> attendre la sortie de sortie en deux lignes différentes et imprimer la sortie comme ci-dessous p> essayé avec char (13) p> Obtenir d'erreur comme: p> -Ora-00936: expression manquante existe-t-il un moyen de se diviser en deux lignes? p> p>
00936. 00000 - "Expression manquante"
* Cause:
* Action:
Erreur à la ligne: 2 colonne: 189 p>
blockQuote>
3 Réponses :
Opérateur de concaténation est double tuyau Aussi, essayez avec ce qui signifie que nous parlons de la peine comme p> || code>, pas plus
+ code>.
chr (10) code> au lieu de
chr (13) code>. p>
Merci pour la réponse, mais cela ne fonctionne pas, ne pas imprimer en ligne différente.
Vous essayez de l'imprimer comme une colonne. Donc, vous n'obtiendrez pas le résultat souhaité même après avoir utilisé cette fonction de CHR.
Vous devez contacter toutes les colonnes dans une pour obtenir le résultat souhaité. P>
-- table structure -- see the "," between column names SELECT '1' || CHR(10) as col1, '2' as col2 FROM DUAL; output -- not as expected ------ CO C -- - 1 2 -- Printable structure -- No "," -- single column output SELECT '1' || CHR(10) || '2' as col1 FROM DUAL; output -- As expected ------ COL --- 1 2 -- Your query should be written something like this SELECT PK_MTF1000 || ' ' || CASE WHEN MAX1 IS NULL THEN 'NULL' ELSE MAX1 END -- CHANGED THIS LINE || ' ' || CASE WHEN MIN1 IS NULL THEN 'NULL' ELSE MIN1 END -- CHANGED THIS LINE || CHR(10) || MID || ' ' || MID1 || ' ' || MID2 FROM ( SELECT ( CASE WHEN MAX(PK_MTF1000) = MIN(PK_MTF1000) AND COUNT(PK_MTF1000) = COUNT(*) OR MAX(PK_MTF1000) IS NULL THEN 'same' ELSE 'diff' END ) AS PK_MTF1000, MAX(PK_MTF1000) AS MAX1, MIN(PK_MTF1000) AS MIN1, ( CASE WHEN MAX(MID) = MIN(MID) AND COUNT(MID) = COUNT(*) OR MAX(MID) IS NULL THEN 'same' ELSE 'diff' END ) AS MID, MAX(MID) AS MID1, MIN(MID) AS MID2 FROM MTF1000 WHERE ORG = ' BULGER CAPITAL LLC' );
Merci Tejash pour la réponse, mais malheureusement, il n'a pas résolu mon problème, il s'agit d'impression comme "" même diff 1962008204906400 1962008204823K00 ""
Vous devez l'exécuter en tant que script si vous alliez du développeur SQL. - J'ai mis à jour ma réponse maintenant. Vérifiez s'il vous plaît.
Je pense que vous voulez probablement un syndicat, chaque ensemble de données a donc sa propre ligne.
select (case when max(PK_MTF1000) = min(PK_MTF1000) and count(PK_MTF1000) = count(*) or max(PK_MTF1000) is null then 'same' else 'diff'end)as PK_MTF1000, max(PK_MTF1000), min(PK_MTF1000) from MTF1000 where ORG=' BULGER CAPITAL LLC' union all select (case when max(MID) = min(MID) and count(MID) = count(*) or max(MID) is null then 'same' else 'diff'end) as MID, max(MID), min(MID) from MTF1000 where ORG=' BULGER CAPITAL LLC';
Merci pour la mise à jour, parfaitement accepté avec vous, ici un problème si le type de données est différent, cela ne fonctionnera pas. Imaginez si j'ai 1000 colonnes, il sera difficile d'ajouter du type de données pour une colonne différente.
C'est vrai. Si vous ne pouvez pas convertir facilement les types de données, vous pourriez avoir besoin de 2 requêtes différentes.