Return only the records with a string of text that is less than a certain value?

Hi people,

I'm not sure whether this is possible or not, but worth-

I need to be able somehow output only the lines with the text of a column field less to (because of the arguments) 30 characters (including spaces). I know that I can use CFs Left() function to cut the chain, but I don't want to have words cut off mid-sentence. Therefore, I want to somehow restrict the query to only the records that contain a string of less than 30 characters.

Is this possible?

Thanks in advance :-)

You can use the length of the db function. It may or may not be named LEN()

SELECT SomeColumn
FROM YourTable
WHERE LEN (SomeColumn)<=>

Or you can retrieve all of the records and use one of the functions of the chain at cflib.org as FullLeft().
http://www.cflib.org/UDF.cfm?id=329

Tags: ColdFusion

Similar Questions

  • Return only the columns with different values.

    Hi all

    I am trying to solve a seemingly trivial problem but can't seem to get any clear answer anywhere in any forum. Consider a single table with 5 columns and only two lines:
    row_id           first_name         last_name        age            gender
    1                    John                  doe               27             M
    1                    Jane                  doe               27              F  
    Assume that there is no primary key or any other constraint. Also assume that there are only and only two lines of this table. So I need basically a query that, overall above lines, would return first name and sex, because they are only different columns in two lines, as well as their values. Even if I can get sort of column names that are different and that would be enough that I can easily access the values later. It is also important to remember that I may not know the names of the columns in the columns, so basically, somehow, I use user_tab_columns in the process.

    Any help appreciated.

    Published by: 894302 on May 1, 2013 10:35

    Hello

    894302 wrote:
    The exact release could be just a varchar variable that lists all the columns that have different values with each column name separated by commas. We'll call the query you want as a QUERY. So, if I do something like

    Select the REQUEST of double; Output should be: 'first_name, equality of the sexes. Is this possible?

    In this case:

    SELECT     RTRIM ( DECODE (a.row_id,     b.row_id,     NULL, 'row_id,')     ||
                    DECODE (a.first_name, b.first_name, NULL, 'first_name,') ||
              DECODE (a.last_name,  b.last_name,  NULL, 'last_name,')  ||
              DECODE (a.age,        b.age,          NULL, 'age,')      ||
              DECODE (a.gender,     b.gender,     NULL, 'gender,')
               , ','
               )          AS different_columns
    FROM     rhit_table_x  a
    JOIN     rhit_table_x  b  ON  a.ROWID     < b.ROWID
    ;
    

    Output:

    DIFFERENT_COLUMNS
    ---------------------------------------
    first_name,gender
    

    This assumes that you have really a table, then you can use ROWID to distinguish the lines, since there is no primary key.
    If this isn't the case, you first assign ROW_NUMBER in a subquery.

  • best way to find the maximum value that is less than a specific value?

    Hello guys,.

    What is the fastest way to find a record that has value max of a field and there is a limitation to a specific value for ex:

    example 1:
    create table dummy(master_id number, detail_id number, some_value varchar2(80));
     
    insert into dummy values (1,1,'bla bla1');
    insert into dummy values (1,2,'bla bla2');
    insert into dummy values (1,3,'bla bla3');
    insert into dummy values (2,1,'bla bla4');
    insert into dummy values (2,2,'bla bla5');
    insert into dummy values (2,3,'bla bla6');
    insert into dummy values (2,4,'bla bla7');
    commit;
    I want to get:
    1 3 bla bla3
    2 4 bla bla7
    And these applications give a correct result:
    Select * 
    from   dummy d1
    where  detail_id = (select max(detail_id) from dummy d2 where d2.master_id = d1.master_id);
     
    OR next one which i prefered.
     
    Select *
    From   (Select d1.* , row_number() over(partition by master_id order by detail_id desc) r
            from   dummy d1)
    Where  r = 1;
    If these solutions are enough or is there a better way?

    Edited by: elcaro on 13.Ara.2011 04:02

    Edited by: elcaro on 14.Ara.2011 04:31

    Please try this with your new test tables:

    select m.master_id,
           m.master_data,
           max(d.id) keep (dense_rank last order by data_value, d.id) d_id,
           max(d.master_id)  keep (dense_rank last order by data_value, d.id) d_master_id,
           max(data_value) keep (dense_rank last order by data_value, d.id) d_data_value,
           max(date_data)  keep (dense_rank last order by data_value, d.id) d_date_data
    from master_dummy m, detail_dummy d
    where m.master_id=d.master_id
    and d.date_data <= to_timestamp('04012010','ddmmyyyy')
    group by m.master_id, m.master_data
    

    Published by: hm on 14.12.2011 05:18

    (I added d.id column in the order by the dense_rank. clause that could make a difference when there is more than one line with the same data_value).

  • My ipod 5 randomly stopped working. First of all, it wouldn't connect to the wifi and now I can't even turn it on. It's the second ipod 5 I've owned that stop less than a year to two years of owning. Why he keep doing this?

    Why my ipod 5 stopped working randomly?

    Unless you are abusing the iPod (i.e., a fall) it seems that you are just out of luck.

    Have you tried the following:

    - iOS: do not respond or does not light

    -Also try DFU mode recovery mode post-test

    How to put iPod touch / iPhone in DFU "Karthik doodles."

    -If failed and that you cannot completely turn completely the iOS device, leave the battery to drain completely. After loading a hour repeat the foregoing.

    -Try a different cable

    -Try on another computer

    S ' there is still not successful that usually indicates a hardware problem and an appointment at an Apple store Genius Bar is in order.

    Shop Apple Store - Genius Bar

  • Need help to write a MySQL query that returns only the peer matching records

    Because I don't know how to explain it easily, I use the table below as an example.

    I want to create a MySQL query that returns only the records that match counterparts where 'col1' = 'ABC '.

    Notice the ' ABC / GHI' record does not have a Counter-match ' GHI / ABC' record. This record must not be returned because there is no Counter-Party correspondent. With this table, the ' ABC / GHI' record should be the one returned in the query.

    How can I create a query that will do it?


    ID | col1 | col2
    --------------------
    1. ABC | DEF
    2. DEF | ABC
    3. ABC | IGS
    4. DEF | IGS
    5. IGS | DEF


    * Please let me know if you have no idea of what I'm trying to explain.

    I wanted to just the results where col1 = ABC, but I already got the answer I needed on another forum. Thank you anyway.

    SELECT a.col1,
    a.col2
    FROM table_name AS a
    LEFT OUTER
    Table_name JOIN b
    ON b.col1 = a.col2
    AND a.col1 = b.col2
    WHERE b.col1 IS NOT NULL AND a.col1 = 'ABC '.

  • Discover with function as datasource returns only the first line.

    Hello

    I created the following function to get the status of all the rules for the instances of SQL Server.

    The data type of the function output has been configured as 'List of SQLInstanceRuleStatuss', where SQLInstanceRuleStatuss is the custom type, I created in the same module.

    When I tested the function, it returns all instances of SQL Server with two other columns.

    But when I try to create a view with the Rows property that is configured to use the feature, it returns only the first line:

    sqlRules = new ArrayList();

    queryStatement = server. QueryService.createStatement ("(DBSS_Instance)");

    queryResult = server. QueryService.executeStatement (queryStatement);

    for (it in queryResult.topologyObjects)

    {

    sqlRule is functionHelper.createDataObject ("westjet_mark_dev:SQLInstanceRuleStatus", "none", "test");.

    sqlRule.instance = it;

    sqlRule.ruleName = 'test rule name';

    sqlRule.status = false;

    sqlRules.add (sqlRule);

    }

    Return sqlRules;

    Did I miss something?

    Thank you

    Mark

    Mark,

    I think I forgot something

    sqlRule=functionHelper.createDataObject("westjet_mark_dev:SQLInstanceRuleStatus","none","test");

    you create the test id

    change your line of

    sqlRule=functionHelper.createDataObject("westjet_mark_dev:SQLInstanceRuleStatus","none",null);

    This should allow the creation of a single object in your loop for

  • I have an e-mail returned by the demon with the reason given as "over quota" what does that mean?

    I got an e-mail that is returned by the demon with the reason given as "over quota" that mean?

    Well, most ISPS and web-based e-mail providers have rules in place: some have attachments maximum file sizes, most have maximum rates for the number of recipients/how many emails per day. I had one that had a maximum bandwidth and would not deliver an email until tomorrow if I ended this day.

    So check the terms of your email provider.

  • return only the decimal value

    What function can I use to return only the decimal value of a formula

    (97 * 2.2) / 14 value returns 15.24

    I only want to use le.24

    Salvation is

    Use the formula - INT (formula)

    In the special case above:

    =(97*2.2)/14 - INT ((97*2.2)/14)

    You see two places to the right of the decimal separator in reason to be rounded off to the value real, in the shape of the cell to only show as two decimal places, either by setting the width of the cell close enough to force the rounding of the displayed value.

    Note that if the result is rounded (using the ROUND function) the actual value of the cell will be the rounded value. For the other two cases, the value displayed indicates only two decimal places, but the real value in the cell (and the additional calculations used by referring to this cell) is 0.242857142857144, which could lead to surprises in the results of the calculations downstream.

    Kind regards

    Barry

  • I have paid, downloaded CC but when I try to download any application log in the box appears, I connect but he immediately returned to the top with "you have been disconnected. I'll just round and round. Someone at - it ideas?

    I have paid, downloaded CC but when I try to download any application log in the box appears, I connect but he immediately returned to the top with "you have been disconnected. I'll just round and round. Someone at - it ideas?

    Hi Steven,

    Please check the contents of the link below and follow the steps mentioned in it to resolve the problem you are experiencing:

    https://helpx-internal.Corp.Adobe.com/content/help/en/creative-cloud/KB/unable-login-creat ive-cloud - 248.html

    Please let me know if this helped.

    -Harsha.

  • Throw the records with null values columns

    Hi all.

    Anyone know how to dispose of records containing null column values?

    In the target table, I have the set Null option? with "N"... then the process sqlldr load some records. I need to load all of this without the records with null column values. by result, if the field X is null then load the file.

    Kind regards.

    Published by: ASzo on 05/06/2013 12:37

    Published by: ASzo on 05/06/2013 12:38

    Published by: ASzo on 05/06/2013 12:42

    load data
    INFILE...
    in the table...
    When x! = ''
    fields completed by...
    (x ...)

  • Join the two trees connect by prior Start With and return only common records?

    Oracle 10g Release 2 (10.2)

    I have two tables which have structured data. The results, when running queries individually are correct, but I need to join tree a tree two to get only the common records between them.

    -Trees a
    SELECT ip_entity_name, entity_code, hier_level, entity_parent
    Of ip_hierarchy
    WHERE hier_level > = 3
    CONNECT BY PRIOR Entity_code = entity_parent
    START WITH entity_code = "MEWWD";

    -The two tree
    SELECT ip_entity_name, entity_code, hier_level, entity_parent
    Of ipt_hierarchy
    WHERE hier_level > = 3
    CONNECT BY PRIOR Entity_code = entity_parent
    START WITH entity_code = "IPNAM";


    If I understand correctly, the joints can not work with CONNECT BY / START WITH queries?

    A WITH clause is an option?

    If possible, I don't want to put a selection in a database to display object and join against other queries.

    Thank you.

    Hello

    jtp51 wrote:
    Oracle 10g Release 2 (10.2)
    ...
    If I understand correctly, the joints can not work with CONNECT BY / START WITH queries?

    Before Oracle 9 it was true. Since you're using Oracle 10, you can if you wish; but I'm guessing that you don't want in this case.

    A WITH clause is an option?

    If possible, I don't want to put a selection in a database to display object and join against other queries.

    Yes, a WITH clause that is an option. Viewed online, as Zhxiang has shown, are another option. Either way gives you a regular display effect without creating a database object.

    You did not show a sample and the results, so no one can tell if a join is really what you want. Other possibilities include INTERSECT or an IN subquery.

  • Return only the hits that corresponds to 3 or more keywords in the search string

    I created a Multi context column index that works as expected.

    In my application, I would like to be able to search using the following (or similar) string:

    "man dog cat tree fetch stick."

    And I would like to return only results that contain 3 or more words. That is to say, any result which contained 'man' and 'dog' and 'stick' would be a match, but the results which contained only "fetch" and "dog" wouldn't.

    Can anyone think of a way to create such a feature?

    Thank you very much in advance for your suggestions.

    Andy

    The "accum" operator (shortened - ",") could help here. Accum is set such that several results are guaranteed to produce a higher score than the terms less. He did this in 'zoning' results - if you do a search of accum for two words, then suddenly will always score in the range 1-50, and and two hits will always be in the range of 51 to 100.

    You can so work with your terms of six search, the result will be something like:
    1 Word hit 1-16
    2 words hit 17-33
    3 words reached 33-50
    4 words hit 51-83
    5 words hit 84-100

    So the search for at least three words is: CONTAINS (col, ' man, dog, cat, stick, tree, look for ") 32 >

    See the complete example below:

    SQL> drop table foo;
    Table dropped.
    
    SQL>
    SQL> create table foo(bar varchar2(60));
    Table created.
    
    SQL> insert into foo values ('man dog');
    1 row created.
    
    SQL> insert into foo values ('man dog cat');
    1 row created.
    
    SQL> insert into foo values ('man dog cat stick');
    1 row created.
    
    SQL> insert into foo values ('man dog cat stick tree');
    1 row created.
    
    SQL> insert into foo values ('man dog cat stick tree fetch');
    1 row created.
    
    SQL> create index foobar on foo(bar) indextype is ctxsys.context;
    Index created.
    
    SQL> select score(0), bar from foo where contains (bar, 'man , dog , cat , stick , tree , fetch', 0) > 0;
    
      SCORE(0)    BAR
    ----------    ------------------------------------------------------------
         17    man dog
         34    man dog cat
         51    man dog cat stick
         67    man dog cat stick tree
         84    man dog cat stick tree fetch
    
    SQL> select score(0), bar from foo where contains (bar, 'man , dog , cat , stick , tree , fetch', 0) > 32;
    
      SCORE(0)    BAR
    ----------    ------------------------------------------------------------
         34    man dog cat
         51    man dog cat stick
         67    man dog cat stick tree
         84    man dog cat stick tree fetch
    

    Of course you don't know the terms of research beforehand how many there are, in this case, you'll need to do the calculation, or use a lookup table to understand what are the limits of the partition.

  • Cursor Oracle return only the last record

    I am a newbie in oracle stored proc. I tried to select data using the slider, but it only return last record. The recording must be greater than 1.

    CREATE or REPLACE procedure MySchema.Test (myrefcur on sys_refcursor)
    Is

    Begin
    declare

    Cursor C1 IS

    Select mySerialNum from TableA;
    MyRecord C1% rowtype;

    Begin
    Open C1;
    Loop
    Fetch C1 into myrecord;
    When the output C1% NotFound;

    Open for Myrefcur
    Select SerialNumB from TableB where SerialNumB = myrecord.mySerialNum;

    End loop;
    Close C1;
    End;
    end;

    However, it only returns the last record in the list.

    Original case *.
    The original code is as below:

    1st, I'll need to select a list of ImageSerialNum of ImageSerial

    * 1 query:
    Select A.ImageSerialNum from ImageSerial A, ProductionOrder B, Bom C
    Where A.ProductionOrderID = B.ProductionOrderID And B.Assembly_Num = C.Model_Num and
    B.Revision = C.Revision And B.EngRevision = C.EngRevision and
    C.Bom_ID = passInVariable* and C.FactoryID = "7"

    2nd, I'll need to check the process of EACH series with the code below:

    * Low code a return process for 1 series only.

    Select t.processid, t.processname, t.assembly_num, t.revision, t.engrevision of
    (Select p.ProcessID, p.ProcessName, in. Assembly_Num, in. review, in. EngRevision, im.imageserialnum
    Process p, Routesequence rs, Imageserial im, ProductionOrder in.
    Where im. ImageserialNum = SerialNum* and p.ProcessID = rs. ProcessID
    And rs. RouteID = in. RouteID and rs. SequenceID = im. NextRouteSequence
    And in. ProductionOrderID = im. ProductionOrderID AND IM. STATUS OF '0'
    UNION
    SELECT A.REWORKROUTEID AS PROCESSID PROCESSNAME AS B.ROUTENAME, C.ASSEMBLY_NUM, C.REVISION, C.ENGREVISION, a.imageserialnum
    OF IMAGESERIAL A, B OF ROAD, PRODUCTIONORDER C
    WHERE A.REWORKROUTEID = B.ROUTEID AND A.IMAGESERIALNUM = SerialNum*.
    AND A.PRODUCTIONORDERID = C.PRODUCTIONORDERID and a.status = '0') t

    After that, I would like to combine the two in 1 stored proc code.

    in this case, you just want to join the two applications to use in the FROM clause
    As I don't have your tables, I created two tables, each representing the results of your queries. Substitute the names of table with your queries

    SQL> drop table master
      2  /
    
    Table dropped.
    
    SQL> drop table details
      2  /
    
    Table dropped.
    
    SQL>
    SQL> create table master
      2  (ImageSerialNum varchar2(25));
    
    Table created.
    
    SQL>
    SQL>
    SQL> insert into master values ('Serial1');
    
    1 row created.
    
    SQL> insert into master values ('Serial2');
    
    1 row created.
    
    SQL> insert into master values ('Serial3');
    
    1 row created.
    
    SQL> insert into master values ('Serial4');
    
    1 row created.
    
    SQL> insert into master values ('Serial5');
    
    1 row created.
    
    SQL>
    SQL> create table details
      2  (ImageSerialNum  varchar2(25)
      3  ,ProcessID  number
      4  ,ProcessName varchar2(25)
      5  );
    
    Table created.
    
    SQL>
    SQL> insert into details values ('Serial1',  1, 'Process1');
    
    1 row created.
    
    SQL> insert into details values ('Serial3',  3, 'Process3');
    
    1 row created.
    
    SQL> insert into details values ('Serial5',  5, 'Process5');
    
    1 row created.
    
    SQL>
    SQL> select m.imageserialnum
      2       , d.processid
      3       , d.processname
      4    from master m
      5    left outer
      6    join details d
      7      on (m.imageSerialnum = d.imageserialnum)
      8   order by m.imageserialnum
      9  /
    
    IMAGESERIALNUM             PROCESSID PROCESSNAME
    ------------------------- ---------- -------------------------
    Serial1                            1 Process1
    Serial2
    Serial3                            3 Process3
    Serial4
    Serial5                            5 Process5
    

    your query will be something like

    select m.imageserialnum
         , d.processid
         , d.processname
      from () m
      left outer
      join (
    
  • By comparing the two records and return only the differences

    Hi all!

    Assume the records as follows:
    USERID     USERNAME   STREET   CITY   PHONE        
    ---------- ---------- -------- ------ -------------
             1 John Smith Street 1 City 1              
             1 John Smith Street 1 City 1 (31) 234-1234
    UserID is PK on this table. Imagine that this application represents two versions of the same record on a table. This recording was 'day' and the phone field changed from null to "(31) 234-1234'.»

    What I´d like to do is to retrieve only (or fields) that changed between these 2 versions of the same record. The idea is to call this query (or process PLSQL) a trigger and save these data on a table. The data returned by the query (or process), on the example above, should be something like:
           USERID     USERNAME STREET CITY PHONE        
    ---------- -------- ------ ---- -------------
             1                      (31) 234-1234
    1 row selected.
    If two columns have been modified, (Eg., City column also changed "City 1' to 'city 12'), the return value should be:
    USERID     USERNAME STREET CITY   PHONE        
    ---------- -------- ------ ------ -------------
             1                 City12 (31) 234-1234
    1 row selected.
    Any idea?
    Thank you very much for your attention.

    Hello

    What I´d like to do is to retrieve only (or fields) that changed between these 2 versions of the same record. The idea is to call this query (or process PLSQL) a trigger and save these data on a table.

    Looks like you're simply wanting a trigger?

    Something like:

    CREATE OR REPLACE TRIGGER audit_trg
      AFTER UPDATE ON your_table
      FOR EACH ROW
    BEGIN
    
     INSERT INTO audit_table(userid, username, street, city, phone)
     VALUES(
       :new.userid,
       nullif(:new.username, :old.username),
       nullif(:new.street, :old.street),
       nullif(:new.city, :old.city),
       nullif(:new.phone, :old.phone)
     );
    
    END;
    /
    
  • Insert the record with the decimal string?

    I want to insert a record with commas, as the below:
    INSERT INTO TABLEA(CITY) VALUES('ALBANY,NEWYORK,TROY')
    Is there a way we can insert commas in the table?

    This statement has been inserted

    What is your question.

    SQL> INSERT INTO TABLEA(CITY) VALUES('ALBANY,NEWYORK,TROY') ;
    
    1 row created.
    

Maybe you are looking for