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:
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.row_id first_name last_name age gender 1 John doe 27 M 1 Jane doe 27 F
Any help appreciated.
Published by: 894302 on May 1, 2013 10:35Hello
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 likeSelect 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:
I want to get: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;
And these applications give a correct result:1 3 bla bla3 2 4 bla bla7
If these solutions are enough or is there a better way?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;
Edited by: elcaro on 13.Ara.2011 04:02
Edited by: elcaro on 14.Ara.2011 04:31Please 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).
-
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.
-
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 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.
-
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?
Hi Steven,
Please check the contents of the link below and follow the steps mentioned in it to resolve the problem you are experiencing:
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:42load 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.
AndyThe "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-100So 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 queriesSQL> 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 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'.»USERID USERNAME STREET CITY PHONE ---------- ---------- -------- ------ ------------- 1 John Smith Street 1 City 1 1 John Smith Street 1 City 1 (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:
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 (31) 234-1234 1 row selected.
Any idea?USERID USERNAME STREET CITY PHONE ---------- -------- ------ ------ ------------- 1 City12 (31) 234-1234 1 row selected.
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:
Is there a way we can insert commas in the table?INSERT INTO TABLEA(CITY) VALUES('ALBANY,NEWYORK,TROY')
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
-
Save yourself some headaches if your RAID with Intel RST race of 10 to win... Installed Intel Rapid Storage Technology 15.2.0.1020 technology application & driver. Readers SanDisk Extreme Pro 240 GB SanDisk SSD Dashboard 1.4.3 lost to see and choose
-
I cannot from the Dell SupportAssist on standard Windows Server 2012 program. At first I installed with OpenManage Essentials 1.2.0 and SupportAssist worked well. Then I had some difficulties to install SupportAssist for Microsoft SCOM and had to rei
-
Such appeal concerning the error message
Received a phone call today about the error messages generated by our computers when we go to the line. The representative stated that we were infected when we go to the line. Is this true?
-
How to put text on a screen in color?
I am doing a project for class and I have to present a document that looks like creative. I'm doing a block of text with the title and then a box tinged behind it. When I try this however, my text disappears? I disabled clothing, but I still have