读书人

SQL杜撰表应用三例

发布时间: 2012-11-05 09:35:12 作者: rapoo

SQL虚拟表应用三例
SQL虚拟表应用三例?SQL虚拟表是一种通过SELECT语句查询常量表达式形成的一个结果集,和数据库的视图、物理表、临时表都差不多。一旦这个虚拟表构造出来,就可以当作实际的表来查询。?环境:Windows XP Professional 简体中文版mysql-5.0.45-win32?应用三例:?1、求数字对会计大写的对应表。SELECT *? FROM (SELECT 0 AS CODE, '零' AS NAME??????? UNION??????? SELECT 1, '壹'??????? UNION??????? SELECT 2, '贰'??????? UNION??????? SELECT 3, '叁'??????? UNION??????? SELECT 4, '肆'??????? UNION??????? SELECT 5, '伍'??????? UNION??????? SELECT 6, '陆'??????? UNION??????? SELECT 7, '柒'??????? UNION??????? SELECT 8, '捌'??????? UNION??????? SELECT 9, '玖'??????? UNION??????? SELECT 10, '拾') AS RMBDX?ORDER BY CODE ASC;?查询结果:CODE??? NAME--------------0?????? 零1?????? 壹2?????? 贰3?????? 叁4?????? 肆5?????? 伍6?????? 陆7?????? 柒8?????? 捌9?????? 玖10????? 拾??2、产生0~999之间的数字。SELECT CAST(CONCAT(CONCAT(N1, N2), N3) AS UNSIGNED INTEGER) AS NUMS? FROM (SELECT '0' AS N1??????? UNION??????? SELECT '1'??????? UNION??????? SELECT '2'??????? UNION??????? SELECT '3'??????? UNION??????? SELECT '4'??????? UNION??????? SELECT '5'??????? UNION??????? SELECT '6'??????? UNION??????? SELECT '7'??????? UNION??????? SELECT '8'??????? UNION??????? SELECT '9') AS NUM1,?????? (SELECT '0' AS N2??????? UNION??????? SELECT '1'??????? UNION??????? SELECT '2'??????? UNION??????? SELECT '3'??????? UNION??????? SELECT '4'??????? UNION??????? SELECT '5'??????? UNION??????? SELECT '6'??????? UNION??????? SELECT '7'??????? UNION??????? SELECT '8'??????? UNION??????? SELECT '9') AS NUM2,?????? (SELECT '0' AS N3??????? UNION??????? SELECT '1'??????? UNION??????? SELECT '2'??????? UNION??????? SELECT '3'??????? UNION??????? SELECT '4'??????? UNION??????? SELECT '5'??????? UNION??????? SELECT '6'??????? UNION??????? SELECT '7'??????? UNION??????? SELECT '8'??????? UNION??????? SELECT '9') AS NUM3?ORDER BY NUMS ASC;?查询结果:NUMS---------01234...998999???3、求0~999之间整数的二次方根(平方根)。?SELECT NUMS AS SQUARE, ROUND(SQRT(NUMS)) AS BASIS? FROM (SELECT CAST(CONCAT(CONCAT(N1, N2), N3) AS UNSIGNED INTEGER) AS NUMS????????? FROM (SELECT '0' AS N1??????????????? UNION??????????????? SELECT '1'??????????????? UNION??????????????? SELECT '2'??????????????? UNION??????????????? SELECT '3'??????????????? UNION??????????????? SELECT '4'??????????????? UNION??????????????? SELECT '5'??????????????? UNION??????????????? SELECT '6'??????????????? UNION??????????????? SELECT '7'??????????????? UNION??????????????? SELECT '8'??????????????? UNION??????????????? SELECT '9') AS NUM1,?????????????? (SELECT '0' AS N2??????????????? UNION??????????????? SELECT '1'??????????????? UNION??????????????? SELECT '2'??????????????? UNION??????????????? SELECT '3'??????????????? UNION??????????????? SELECT '4'??????????????? UNION??????????????? SELECT '5'??????????????? UNION??????????????? SELECT '6'??????????????? UNION??????????????? SELECT '7'??????????????? UNION??????????????? SELECT '8'??????????????? UNION??????????????? SELECT '9') AS NUM2,?????????????? (SELECT '0' AS N3??????????????? UNION??????????????? SELECT '1'??????????????? UNION??????????????? SELECT '2'??????????????? UNION??????????????? SELECT '3'??????????????? UNION??????????????? SELECT '4'??????????????? UNION??????????????? SELECT '5'??????????????? UNION??????????????? SELECT '6'??????????????? UNION??????????????? SELECT '7'??????????????? UNION??????????????? SELECT '8'??????????????? UNION??????????????? SELECT '9') AS NUM3) AS TMP_TAB?WHERE SQRT(NUMS) = ROUND(SQRT(NUMS))?ORDER BY SQUARE ASC;?查询结果:?SQUARE? BASIS------------------0?????? 01?????? 14?????? 29?????? 316????? 425????? 536????? 649????? 764????? 881????? 9100???? 10121???? 11144???? 12169???? 13196???? 14225???? 15256???? 16289???? 17324???? 18361???? 19400???? 20441???? 21484???? 22529???? 23576???? 24625???? 25676???? 26729???? 27784???? 28841???? 29900???? 30961???? 31?---- 《完》。 1 楼 hysoft 2008-04-22 隐!!!!!!!

读书人网 >SQL Server

热点推荐