Comparing substr values of two columns
Say you have a table with 3 columns:
*Unique random-generated id,
*First name
*Mailing name
I need to find all the rows where the mailing name does not contain the value of the first name column.
The "like" operator (only used with where clause) doesn't seem to work because what you want to do is:
select * from table
where [first_name is *not* found in *part of* (it will never be exact match) the mailing_name]
What's the correct where clause?
Any help is appreciated. Thanks
Maybe You can use something like
select * from table
where instr(Mailing name, First name) = 0
For example
SQL> select 1 from dual
2 where instr('GINTS PLIVNA','aaa') = 0;
1
1
SQL> select 1 from dual
2 where instr('GINTS PLIVNA', 'INTS') =0;
no rows selected
SQL>
Similar Messages
-
Need to compare values in two columns of one table against values in two columns in another table
Hi, as the title reads, I'm looking for an approach that will allow me to compare values in two columns of one table against values in two columns in another table.
Say, for instance, here are my tables:
Table1:
Server,Login
ABCDEF,JOHN
ABCDEF,JANE
FEDCBA,SEAN
FEDCBA,SHAWN
Table2:
Server,Login
ABCDEF,JOHN
ABCDEF,JANE
FEDCBA,SHAWN
In comparing the two tables, I'd like my query to report the rows in table1 NOT found in table2. In this case, it'll be the 3rd row of table one:
Server,Login
FEDCBA,SEAN
Thanks.create table Table1([Server] varchar(50), Login varchar(50))
Insert into Table1 values ('ABCDEF','JOHN'),('ABCDEF','JANE'),('FEDCBA','SEAN'),('FEDCBA','SHAWN')
create table Table2([Server] varchar(50), Login varchar(50))
Insert into Table2 values ('ABCDEF','JOHN'),('ABCDEF','JANE'), ('FEDCBA','SHAWN')
select [Server] ,Login from Table1
Except
select [Server] ,Login from Table2
select [Server] ,Login from Table1 t1
where not exists(Select 1 from Table2 where t1.[Server] = t1.[Server] AND Login=t1.Login)
drop table Table1,Table2 -
From two given tables, how do you fetch the values from two columns using values from one column(get values from col.A if col.A is not null and get values from col.B if col.A is null)?
Hi,
Use NVL or COALESCE:
NVL (col_a, col_b)
Returns col_a if col_a is not NULL; otherwise, it returns col_b.
Col_a and col_b must have similar (if not identical) datatypes; for example, if col_a is a DATE, then col_b can be another DATE or it can be a TIMESTAMP, but it can't be a VARCHAR2.
For more about NVL and COALESCE, see the SQL Language manual: http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions119.htm#sthref1310
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all tables involved, and also post the results you want from that data.
Explain, using specific examples, how you get those results from that data.
Always say which version of Oracle you're using (e.g., 11.2.0.2.0).
See the forum FAQ: https://forums.oracle.com/message/9362002 -
Hi All,
Am using OPENROWSET to load the file data into table, here the problem is i need to map same input value to two different columns of table, As format file doesn't allow the duplicate numbers am unable to insert same value to two columns, please help me to
find a solution for this.
i can use only OPENROWSET because i need to insert some default values also which come based on file. only the problem is how to map same input value to two different columns of table. please give me the suggestions.
Thanks,
SudhakarFrom what you say:
INSERT tbl(col1, col2)
SELECT col1, col1
FROM OPENROWSET(....)
But I guess it is more difficult. You need to give more details. What sort of data source do you have? What does your query look like? The target table?
Erland Sommarskog, SQL Server MVP, [email protected]
Hi Erland,
Thanks for your response
my source file is text file with | symbol separate for ex:
1002|eTab |V101|eTablet|V100|Logic|LT-7|Laptops|SCM
Database table have columns like
column1,column2,column3...etc, now i need to insert same value from input file into two columns for ex:
the eTab value from text file has to be insert into column2 and column3 of
table
we cannot change format file like below one
for the above situation how can we insert eTab into column2 and column3
Thanks,
Sudhakar. -
Concatinating the values of two columns ???
Hi,
Can anyone help me out in concatenating the values of two columns ??
Please ASAP...
Thanks>
What's wrong with
select (col X || '-'|| Col y ) as Z from xyz_table;
test@ora>
test@ora>
test@ora> --
test@ora> with xyz_table as (
2 select 1 as col from dual)
3 --
4 select (col X || '-'|| Col y ) as Z from xyz_table;
select (col X || '-'|| Col y ) as Z from xyz_table
ERROR at line 4:
ORA-00907: missing right parenthesis
test@ora>
test@ora>
test@ora> --
test@ora> with xyz_table as (
2 select 1 as x, 2 as y from dual)
3 --
4 select (col X || '-'|| Col y ) as Z from xyz_table;
select (col X || '-'|| Col y ) as Z from xyz_table
ERROR at line 4:
ORA-00907: missing right parenthesis
test@ora>
test@ora>
test@ora> -- ==================================================
test@ora> --
test@ora> with xyz_table as (
2 select 1 as col from dual)
3 --
4 select (col || '-'|| Col) as Z from xyz_table;
Z
1-1
1 row selected.
test@ora>
test@ora>
test@ora> --
test@ora> with xyz_table as (
2 select 1 as x, 2 as y from dual)
3 --
4 select (X || '-'|| y ) as Z from xyz_table;
Z
1-2
1 row selected.
test@ora>
test@ora>isotope -
Comparing row values in two different tables
Hello,
Does anyone know if it is possible to compare (and possibly highlight - which I know can be done) row values in two different tables?
I have a ZIP Code column in table A that I want to compare to a ZIP Code column in table B and highlight those ZIP Codes that are present in table B but not in table A etc. Is this possible?
Thanks,
KennethTo be able to apply conditional formatting, I must edit the formulas this way.
=IF(ISBLANK(B)," ",IF(ISERROR(VLOOKUP(B,Tableau 2 :: B,1,0))," ",VLOOKUP(B,Tableau 2 :: B,1,0)))
=IF(ISBLANK(B)," ",IF(ISERROR(VLOOKUP(B,Tableau 1 :: B,1,0))," ",VLOOKUP(B,Tableau 1 :: B,1,0)))
I replaces the four empty strings by strings containing one space character.
In the field supposed to contain the text which is not contained I just entered a single space character.
Yvan KOENIG (from FRANCE vendredi 12 septembre 2008 20:52:11) -
Single column value into two column of report
Hi frnds,
I have a column of Adress in my databse table from where i have to fetch values and show it a report
able to get report but showing in single column if i take a printout paper will be wasted so I thought of passing these values to two different columns
please help me in giving some suggestionsIn Oracle 9 you can get rid of the regex functions and use traditional SUBSTR, INSTR and REPLACE:
ABSOLUTELY NOT TESTED...
SELECT col1,SUBSTR ( ','||col2||',', instr(','||col2||',',',',lvl)+1,instr(','||col2||',',',',lvl+1)-instr(','||col2||',',',',lvl)-1)
FROM table_name,
(SELECT LEVEL lvl
FROM (SELECT MAX (LENGTH (REPLACE ( col2, ',',''))) mx
FROM table_name)
CONNECT BY LEVEL <= mx + 1)
WHERE lvl - 1 <= LENGTH (REPLACE ( col2, ',',''));Max -
How to Sort one key figure values in two column based on single char
hi gurus,
I would really appreciate if some one can help me out with my question.
I have to design a query based on a Multiprovider built on three ODS, Purchasing, Confirmations & Invoic ODS
Purchase order Value and Number data in PO ODS, and confirmations is in CONFODS, Invoice Values in INV ODS,
The design of the requirement is
Vendor --> PO --> Material PO Value --> Text PO Value --> Confirmation value --> Invoice value
There are Two POS 1. Material PO & 2. Text PO
I need to display all the Purchase orders for a vendor and in different columns i need to display the value of the Material PO and Text PO and their Confirmation Value and how much is the invoiced value for every PO.
Can anybody tell me what should i do in the Query Designer to display the necessary values.
Thank youHi william,
When i put in the PO KF in the column and also the Confirmation KF in other Column it either shows me # for both the entries or it shows me values in only one of the column
if PO is displayed the Confirmation is not displayed and if Confirmation is displayed PO values are shown as # i dont know what wrong i am doing.
if you have idea can you tell me what i should do when i want two different values from two ODS if there are no characteristics that are matching in either of the ODS should i go for Multi Provider and if so how should be my designing. i would really appreciate if you can tell me taking a scenerio.
Thanks -
Create a new column in a table that compares the value of one column with its previous value
The DDL:
DECLARE
@T TABLE
IDNO
int,
name
varchar(40),
[Date]
datetime2,
Price1
float,
Price2
float
DECLARE
@K TABLE
IDNO
int,
name
varchar(40),
[Date]
datetime2,
Price1
float,
Price2
float
INSERT
INTO @T
VALUES(22,'C_V_Harris','2014-01-02 10:23:49.0000000',
23.335,
23.347)
INSERT
INTO @T
VALUES(21,'C_V_Harris','2014-01-02 10:05:13.0000000',
23.357,
23.369)
INSERT
INTO @T
VALUES(20,'C_V_Harris','2014-01-02 09:56:15.0000000',
23.364,
23.377)
INSERT
INTO @T
VALUES(19,'C_V_Harris','2014-01-02 09:45:26.0000000',
23.351,
23.367)
INSERT
INTO @T
VALUES(18,'C_V_Harris','2014-01-02 09:43:20.0000000',
23.380,
23.396)
INSERT
INTO @T
VALUES(17,'C_V_Harris','2014-01-02 09:34:28.0000000',
23.455,
23.468)
INSERT
INTO @T
VALUES(16,'C_V_Harris','2014-01-02 09:30:37.0000000',
23.474,
23.486)
INSERT
INTO @T
VALUES(15,'C_V_Harris','2014-01-02 09:18:12.0000000',
23.419,
23.431)
INSERT
INTO @T
VALUES(14,'C_V_Harris','2014-01-02 09:16:06.0000000',
23.360,
23.374)
INSERT
INTO @K
SELECT
ROW_NUMBER()
OVER (ORDER
by IDNO)
AS RN,*
FROM
@T
SELECT
* FROM
@K
--not working:
SELECT
a.RN,a.Price2
FROM
@K a
INNER
JOIN @K
b
ON
a.RN=b.RN-1
WHERE
a.Price2>b.Price2
I need to create a view with a column (say 'Comp' below) that compares the value of each row in Price2 with the previous Price2 row, and it is greater then +1, the
same 0, and less -1.
The processed table should be:
IDNO
name
Date
Price1
Price2
Comp
22
C_V_Harris
1/2/2014 10:23:49
23.335
23.347
0
21
C_V_Harris
1/2/2014 10:05:13
23.357
23.369
1
20
C_V_Harris
1/2/2014 9:56:15
23.364
23.377
1
19
C_V_Harris
1/2/2014 9:45:26
23.351
23.367
-1
18
C_V_Harris
1/2/2014 9:43:20
23.38
23.396
1
17
C_V_Harris
1/2/2014 9:34:28
23.455
23.468
1
16
C_V_Harris
1/2/2014 9:30:37
23.474
23.486
1
15
C_V_Harris
1/2/2014 9:18:12
23.419
23.431
-1
14
C_V_Harris
1/2/2014 9:16:06
23.36
23.374
-1
How can I structure the statement to get (the most recent - order by date ) result for Comp?Satheesh Variath, I just had to make some corrections from your script to get the correct answer:
CREATE
VIEW vw_Comp
AS
SELECT
TOP 1 t.IDNO,t.name,t.[Date],t.Price1,t.Price2,
CASE
WHEN t.Price2
> LAG(Price2,1)
OVER (PARTITION
BY name
ORDER BY IDNO)
THEN 1
WHEN t.Price2
< LAG(Price2,1)
OVER (PARTITION
BY name
ORDER BY IDNo)
THEN -1
ELSE 0
END
AS Comp
FROM
@T t
ORDER
BY DATE
DESC
The adjustments: the selection of the most recent comparison (Top 1) and the use of the function LAG (instead of LEAD) to get the previous value of the column. -
Split one column value into two columns using t-sql
Hi All,
I have one varchar column in a table.
Col1
ABC-12C4
BC-A345
CD
XYZ
How to split this into two columns like this using t-sql
Col1 Col2
ABC 12C4
BC A345
CD
XYZ
Thanks,
RH
sqlassuming a static delimiter, and the split will end up with a max of 2 columns, something like this would work. basically you just need to determine where the delimiter is, and then use the left and right functions to find the 2 pieces.
declare @t table(value varchar(10))
insert into @t(value)
values
('ABC-12C4'), ('BC-A345'), ('CD'), ('XYZ')
select
case
when charindex('-', value) != 0 then left(value, charindex('-', value) - 1)
else value
end as col1,
case
when charindex('-', value) != 0 then right(value, len(value) - charindex('-', value))
else ''
end as col2
from @t -
K-Bits (1) : Interchange the values of two columns
Hi Everyone
I wanted to get started a mechanism of knowledge sharing in the way of a series of threads called “K-Bits” (Knowledge Bits).
In our day to day work, we learn some new things which can be useful for others. However we hardly get a chance to share it with others.
Here is the opportunity to share your knowledge in the form of “K-Bits”.
Here we start with the First Tip of this series.
You might face a situation where you need to interchange the values of 2 columns in an Oracle database table.
E.g. there is a table employee having columns EMPID, FIRST_NAME, LAST_NAME and SALARY. By mistake the values of FIRST_NAME and LAST_NAME have been interchanged. Now you need to bring the data in correct state.
You can think about following few options:
Option-1_
1. Alter table employee and add a new column TEMP_NAME to it.
2. Update the values of LAST_NAME to TEMP_NAME.
3. Update the LAST_NAME with the values of FIRST_NAME.
4. Update the FIRST_NAME with the values of TEMP_NAME.
5. Drop the column TEMP_NAME.
Option-2 (For Oracle version 9i or higher)_
1. Alter table employee and rename LAST_NAME column to TEMP_NAME.
2. Alter table employee and rename column FIRST_NAME to LAST_NAME.
3. Alter table employee and rename column TEMP_NAME to FIRST_NAME.
Probably you can go ahead with any other solution as well. However there is one very simple solution.
Option-3_
Let do it by example:
DROP TABLE EMPLOYEE;
CREATE TBALE EMPLOYEE
EMPID NUMBER
,FIRST_NAME VARCHAR2(30)
,LAST_NAME VARCHAR2(30)
,SALARY NUMBER
INSERT INTO EMPLOYEE VALUES (1,'Tendulkar','Sachin', 10000);
INSERT INTO EMPLOYEE VALUES (1,'Ganguli','Saurabh', 10000);
INSERT INTO EMPLOYEE VALUES (1,'Pathan','Irfan', 10000);
INSERT INTO EMPLOYEE VALUES (1,'Khan','Jaheer', 10000);
INSERT INTO EMPLOYEE VALUES (1,'Agarkar','Ajit', 10000);
INSERT INTO EMPLOYEE VALUES (1,'Dravid','Rahul', 10000);
SELECT *
FROM EMPLOYEE;
UPDATE EMPLOYEE
SET FIRST_NAME = LAST_NAME
,LAST_NAME = FIRST_NAME;
SELECT *
FROM EMPLOYEE; The update statement above solves the purpose. Is not it simple? But how does it work??
For any DML (Insert, Update or Delete) oracle internally fires the row level triggers. You can read more about triggers at
http://download-east.oracle.com/docs/cd/B10501_01/server.920/a96524/c18trigs.htm
and
http://download-east.oracle.com/docs/cd/B10501_01/appdev.920/a96590/adg13trg.htm#431
As you know in row level triggers the values of each column is stored in :OLD and :NEW parameters. For the above UPDATE statement oracle stores the old values of FIRAT_NAME and LAST_NAME in :OLD.FIRST_NAME and :OLD.LAST_NAME parameters respectively and then update FIRST_NAME with :OLD.LAST_NAME and LAST_NAME with :OLD.FIRST_NAME.
Regards
Arun Kumar GuptaFor any DML (Insert, Update or Delete) oracle internally fires the row level triggers.Any pointer to the documentation supporting this ?
Edited by: Saubhik on Dec 7, 2010 5:58 PM -
I'm trying to move a table from a MS Access database to a datasource online so I don't have to be the only one that can perform a specific task.
Right now I regularly am having to assess change requests to determine if it impacts the servers my team supports. Currently I copy and paste the text list into a temporary table in MS Access then hit a button to run a query comparing what was in that list to my server inventory. Works fine but now I need to move this online so others can do this in a place where we can also keep everyone using the exact same inventory and am planning on using a ColdFusion server.
So what I believe would be easiest is to create a form that has a textarea where I can just copy and paste what is in the change request and then hit a submit button and go to the next page where it would list all the servers that matched (with all the other info I also need).
Almost always the info would hit the textarea with a separate row for each server with no other delimiters, etc.
Example info in textarea:
servername1
servername2
servername3
What is the best/easiest way in the SQL code on the following page to take the values from the textarea the way they are listed and return results of any that match the server name column from that list? What CF functions and SQL coding are needed?
I've done something in the past where I did WHERE Server IN (#PreserveSingleQuotes(Form.ServerList)#)...
But I had to input 'servername1', 'servername2', 'servername3' in the text box and with how often we'll be copying lists as show above from a text area or from an excel column I'd really like a way to get from the example above to the results I need without having to manipulate. Sometimes the list I'm comparing against may be 300+ servers and adding that formatting is not desirable.
Any help would be appreciated.So here is a solution I came up with
<cfoutput>
<cfset Servers="#StripCR(Form.ServerList)#">
<cfset Servers2="'#Replace(Servers, "
", " ", "All")#'">
<cfset Servers3="#ToString(Servers2)#">
<cfset Servers4="#Replace(Servers3, " ", "', '", "All")#">
</cfoutput>
Then in the cfquery SQL I used
WHERE Server IN (#PreserveSingleQuotes(Servers4)#)
Right now this is working but it seems very cumbersome. If anyone can come up with a way to simplify this please let me know. -
How to Identify mismatch values in two columns
I have two tables basically two excel files used by two different depts. I am trying to reconcile dollar amounts between two.
Table A has ID, Amount,Paid Date
Table B has ID,Amount ,Paid Date.
What`s happening is between two tables at times we are finding amount column values differ for same paiddate, there are instances where same transaction recorded in table A will have a different amount but Paid Date will be different. I am trying to find
ID`s which have different amounts.Code below I am trying to find ID`s that exist in both tables and In my where clause I am using where Amount col from Table A is not equal Amount Col in Table B. When I run this code I get I dont see mismatched amounts
select l.id,SUM(l.[amount]),a.amount
FROM SFY14_Detail_Q1 a
inner JOIN dbo.Qtr1_X_Recon l ON l.[id] = a.ID
WHERE l.[amount] <> a.amount and l.[amount] <> 0
group by l.id,a.amount
order by sum(l.[amount]) desc
FMChances are, it's because you are grouping by amount. If you look closer, you'll probably see the same ID twice, once for one amount, and again elsewhere for the other amount. So by appearing twice, your query is working, it is identifying
the two with different values, but grouping by Amount, you're not seeing them side by side. You could sort by ID instead, then amount, then they'll show twice, near one another. -
Comparing each value of two internal tables
HI everybody,
i have two internal tables itab1 and itab2 same structure
both r having four fields each and field with values
now i need to compare the two internal tables
and if every value of itab1 matches itab2
then i have to write one select quirie for the following given description
compare past and current shipping point
compare internal_table2 and internal_table3
if entry in internal_table2 and internal table3 match
variable_tknum = internal_table2-tknum
endif.
for each entry that matches:
select vlabdata into zi_vlabdata from vlbl where vbeln = variable_tknum and vlbl-vlabtyp = 'ZIBOOKNO'.
plz give me solution for this
thanks
hridhayanjili.sort : ITAB1 by f1,f2,f3,f4,
ITAB2 by f1,f2,f3,f4.
LOOP AT ITAB1.
READ TABLE ITAB2 WITH KEY F1 = ITAB1-F1
F2 = ITAB1-F2
F3 = ITAB1-F3
F4 = ITAB1-F4 BINARY SEARCH.
IF SY-SUBRC = 0.
*--all the fields of ITAB1 and ITAB2 are matching .
*--write your logic here
ELSE.
*--ITAB1 and ITAB2 records are not matching.
ENDIF.
ENDLOOP.
Regards
Srikanth
Message was edited by: Srikanth Kidambi -
How to concatinate values of two columns and update into another column
There is a table : TEST contains three columns - Column1 , Column2 , Column 3
Column1 contains values - (1,2,4)
Column2 contains values : (a,b,c)
Column 3 is empty .
Target : Values in column 3 should be (1a,2b,4c)
Need to achieve this through procedure .Paul if i want to concatenate two strings or alpha numeric characters from 2 fields and display in the third field,Will this code be able to do that?
Maybe you are looking for
-
Log error while loading a war file to WAs
When trying to load a war file to WAs and selecting the class loader option "Parent last", I get an error: Caused by: org.apache.commons.logging.LogConfigurationException: The chosen LogFactory implementation does not extend LogFactory. Please check
-
How to make submit of pdf forms work in andriod OS. It is working fine in windows system.
-
How to make mouse change position on click?
So, I'm trying to make a gun aim at the crosshair, so it follows the mouse all the time. I want it to go up on recoil, so the mouse crosshair goes up and the gun follows up. I tried something like mouseY - 10; but with no luck, it didn't do anything.
-
I want to use TC for time Machine
Hello, I am wanting to set up my New Time Capsule a certain way. I have a 13" Macbook with a 250GB internal HD. I want to know if I can use time capsule for my time machine back ups & also as an external Hard Drive. I have about 600GB of music and 2
-
Where did my calendars go when I switched to Lion/iCloud?
I just switched to Lion and iCloud, because of the imminent loss of MobileMe's calendar sync'ing, and found that iCal failed to import a number of calendars that I had stored in MobileMe. I went to me.com, converted to iCloud there, and saw it say t