Проблема в том, что COLA имеет добавленные 0s
Что я пытаюсь сделать, это проверить COLB, COLC, COLD, COLE, COLF с COLA
Или я сделал этоНеправильный путь!
Как получить COLB, COLD для сравнения числа (int) с подстрокой с добавленным номером?
Пример, который является правильным
COLB COLC COLD COLE COLF COLA
1 DD 5 1 0 should = 01DD000510
ни один из этих
COLB COLC COLD COLE COLF COLA
50 AA 230 2 0 0
50 AC 600 3 0
50 AG 740 2 0 50AE074020
50 AS 240 3 0 *0AS024030
-- select that does not work statement.
SELECT COLA ,
COLB ,
SUBSTRING(COLA, 1, 2) AS 'BLC_COLB' ,
COLC ,
SUBSTRING(COLA, 3, 2) AS 'BLC_COLC' ,
COLD ,
SUBSTRING(COLA, 5, 4) AS 'BLC_COLD' ,
COLE ,
SUBSTRING(COLA, 9, 1) AS 'BLC_COLE' ,
COLF ,
SUBSTRING(COLA, 10, 1) AS 'BLC_COLF'
FROM ATABLE
WHERE SUBSTRING(COLA, 1, 2) NOT LIKE COLB
OR SUBSTRING(COLA, 3, 2) NOT LIKE COLC
OR SUBSTRING(COLA, 5, 4) NOT LIKE COLD
OR SUBSTRING(COLA, 9, 1) NOT LIKE COLE
OR SUBSTRING(COLA, 10, 1) NOT LIKE COLF
--create table and data script
CREATE TABLE [dbo].[ATABLE]
(
[ROWVERSION] [bigint] NULL ,
[ROWDATE] [datetime] NULL ,
[COLB] [int] NOT NULL ,
[COLC] [nvarchar](2) NOT NULL ,
[COLD] [int] NOT NULL ,
[COLE] [nvarchar](1) NOT NULL ,
[COLF] [int] NOT NULL ,
[COLA] [nvarchar](14) NULL ,
CONSTRAINT [CON1_0] PRIMARY KEY CLUSTERED
( [COLB] ASC, [COLC] ASC, [COLD] ASC, [COLE] ASC, [COLF] ASC )
WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 70 ) ON [PRIMARY]
)
ON [PRIMARY]
GO
SET NUMERIC_ROUNDABORT OFF
GO
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER, ANSI_NULLS, NOCOUNT ON
GO
SET DATEFORMAT YMD
GO
SET XACT_ABORT ON
GO
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
BEGIN TRANSACTION
-- Add 5 rows to [dbo].[ATABLE] with non-unique comparison key
SET ROWCOUNT 1
INSERT INTO [dbo].[ATABLE]
( [COLB] ,
[COLC] ,
[COLD] ,
[COLE] ,
[COLF] ,
[ROWVERSION] ,
[ROWDATE] ,
[COLA]
)
VALUES ( 1 ,
N'DD' ,
5 ,
N'1' ,
0 ,
327520493236000002 ,
'2011-07-04 10:21:33.227' ,
N'01DD000510'
)
INSERT INTO [dbo].[ATABLE]
( [COLB] ,
[COLC] ,
[COLD] ,
[COLE] ,
[COLF] ,
[ROWVERSION] ,
[ROWDATE] ,
[COLA]
)
VALUES ( 50 ,
N'AA' ,
230 ,
N'2' ,
0 ,
327520514140000004 ,
'2011-07-28 09:47:41.013' ,
N'0'
)
INSERT INTO [dbo].[ATABLE]
( [COLB] ,
[COLC] ,
[COLD] ,
[COLE] ,
[COLF] ,
[ROWVERSION] ,
[ROWDATE] ,
[COLA]
)
VALUES ( 50 ,
N'AC' ,
600 ,
N'3' ,
0 ,
327520523360000007 ,
'2011-07-28 09:48:09.577' ,
N''
)
INSERT INTO [dbo].[ATABLE]
( [COLB] ,
[COLC] ,
[COLD] ,
[COLE] ,
[COLF] ,
[ROWVERSION] ,
[ROWDATE] ,
[COLA]
)
VALUES ( 50 ,
N'AG' ,
740 ,
N'2' ,
0 ,
327520543671000002 ,
'2011-07-28 09:47:03.773' ,
N'50AE074020'
)
INSERT INTO [dbo].[ATABLE]
( [COLB] ,
[COLC] ,
[COLD] ,
[COLE] ,
[COLF] ,
[ROWVERSION] ,
[ROWDATE] ,
[COLA]
)
VALUES ( 50 ,
N'AS' ,
240 ,
N'3' ,
0 ,
327520586618000007 ,
'2011-07-28 09:48:08.453' ,
N'*0AS024030'
)
SET ROWCOUNT 0
COMMIT TRANSACTION