SQL adaptation guide for SQL SERVER 2005, 2008, 2012, 2014, 2016 / Data manipulation |
Informix® SQL statements can use subscripts on columns defined with the character data type:
SELECT ... FROM tab1 WHERE col1[2,3] = 'RO' SELECT ... FROM tab1 WHERE col1[10] = 'R' -- Same as col1[10,10] UPDATE tab1 SET col1[2,3] = 'RO' WHERE ... SELECT ... FROM tab1 ORDER BY col1[1,3]
Microsoft™ SQL SERVER provides the SUBSTR() function, to extract a substring from a string expression:
SELECT .... FROM tab1 WHERE SUBSTRING(col1,2,2) = 'RO' SELECT SUBSTRING('Some text',6,3) FROM tab1 -- Gives 'tex'
You must replace all Informix col[x,y] expressions with SUBSTRING(col,x,y-x+1).
In UPDATE instructions, setting column values through subscripts will produce an error with Microsoft SQL SERVER:
UPDATE tab1 SET col1[2,3] = 'RO' WHERE ...
is converted to:
UPDATE tab1 SET SUBSTRING(col1,2,3-2+1) = 'RO' WHERE ...
Column subscripts in ORDER BY expressions are also converted and produce an error with Microsoft SQL SERVER:
SELECT ... FROM tab1 ORDER BY col1[1,3]
is converted to:
SELECT ... FROM tab1 ORDER BY SUBSTRING(col1,1,3-1+1)