要修改这个 SQL 查询语句,你需要解决以下问题:

  1. SELECT 子句中的 SUBSTRING 函数参数无效。
  2. ORDER BY 子句中的 ROW_NUMBER 函数参数无效。

首先,你需要检查 SUBSTRING 函数的参数。SUBSTRING 函数的第三个参数应该是子字符串的长度,而不是第二个分隔符的位置。你需要将 SUBSTRING 函数的第三个参数更改为正确的长度。

同时,你还需要检查 ORDER BY 子句中 ROW_NUMBER 函数的参数。ROW_NUMBER 函数需要一个有效的排序列,而不是 (SELECT 1)。你需要指定一个合适的排序列。

修正后的 SQL 查询语句如下:

SELECT * FROM 
(
    SELECT DISTINCT c.* 
    FROM 
    (
        SELECT 
            '[DATE]',
            'CPGSD_1',
            'CPHM_1',
            'CPYS_1',
            'NL_1',
            'XB_1',
            'XM_1',
            SUBSTRING('ZJHM_1', 1, CHARINDEX('-', 'ZJHM_1') - 1) AS c16,
            SUBSTRING('ZJHM_1', CHARINDEX('-', 'ZJHM_1', 0) + 1, CHARINDEX('-', 'ZJHM_1', 0 + 1) - CHARINDEX('-', 'ZJHM_1', 0) - 1) AS c17,
            'ZJHM_1' AS 'ZJHM_1' 
        FROM 
        (
            SELECT 
                '[DATE]' AS '[DATE]',
                'CPGSD' AS 'CPGSD_1',
                'CPHM' AS 'CPHM_1',
                'CPYS' AS 'CPYS_1',
                'NL' AS 'NL_1',
                'XB' AS 'XB_1',
                'XM' AS 'XM_1',
                'ZJHM' AS 'ZJHM_1' 
            FROM 
            (
                SELECT 
                    '[DATE]',
                    'CPGSD',
                    'CPHM',
                    'CPYS',
                    'NL',
                    'XB',
                    'XM',
                    'ZJHM' 
                FROM 
                    'dbo'.'SQLSERVER_CAR'
            ) tempt
        ) tempt 
    ) c
) VISUAL_TABLE_ORDER_BY 
ORDER BY ROW_NUMBER() OVER(ORDER BY [DATE]) 
OFFSET 0 ROWS 
FETCH NEXT 10 ROWS ONLY;

注意:

  • 以上代码中,[DATE] 应该替换为实际的日期列名。
  • 'ZJHM_1' 应该替换为实际的身份证号列名。
  • 确保你了解 SUBSTRING 函数和 ROW_NUMBER 函数的使用方法,并根据你的实际需求进行调整。

原文地址: https://www.cveoy.top/t/topic/o0DY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录