我沒有找到與我類似的問題,可能是因為我甚至不知道如何提問,但我有這樣一個表,有幾個列,其中許多是char(4)型別。
有問題的那一列的值是這樣的:
|PRODUCT_CATEGORIES06|
|--------------------|
|FNCY|
| 2|
| 3|
|GRN |
|STD |
| | |
|COMB|
| 1|
|CHO |
因此,當我做 Fiddle
SELECT RPO.REFERENCE_NUMBER, PM.PRODUCT_CATEGORIES06
FROM Table1 RPO
INNER JOIN Table2 PM ON PM.PRODUCT = RPO.PRODUCT
WHERE RPO.REFERENCE_NUMBER = '00012122'/span>
GROUP BY RPO.REFERENCE_NUMBER, PM.COMMODITY, PM.PRODUCT_CATEGORIES01, PM.PRODUCT_CATEGORIES06
我得到:
|REFERENCE_NUMBER |PRODUCT_CATEGORIES06|
|-------------------|--------------------|
|00012122 |1 |
|00012122 |3 |
|00012122 |GRN |
但當我這樣做時。Fiddle
SELECT RPO.REFERENCE_NUMBER, PM.PRODUCT_CATEGORIES06
FROM Table1 RPO
INNER JOIN Table2 PM ON PM.PRODUCT = RPO.PRODUCT
WHERE PM.PRODUCT_CATEGORIES06 = 1
AND RPO.REFERENCE_NUMBER = '00012122'
GROUP BY RPO.REFERENCE_NUMBER, PM.COMMODITY, PM.PRODUCT_CATEGORIES01, PM.PRODUCT_CATEGORIES06
它試圖將GRN轉換為int并拋出這個錯誤:
將varchar值'GRN'轉換為資料型別int時,轉換失敗。
我已經嘗試使用CHAR函式,但我只是在黑暗中射擊,我真的不知道該怎么做。
我知道這個設計很糟糕,買我沒有這樣做,而且,我也不能改變它。
我怎樣才能解決這個問題?
我怎樣才能解決這個問題呢?
EDIT添加了新的查詢。
EDIT添加了fiddle鏈接 或者試試: uj5u.com熱心網友回復: 這一行 使SQL Server試圖將所有的值轉換為一個int,因為 而且它還能作業。
標籤: 上一篇:將Oracleupsert轉換為AzureSQL(T-SQL)準備陳述句
下一篇:SQL-選擇計數最高的國家
CREATE TABLE [dbo].[Table1](
[REFERENCE_NUMBER] [char](8) NOT NULL,
[產品] [char](12) NOT NULL,
)
CREATE TABLE [Table2] (
[產品] [char](12) NOT NULL,
[PRODUCT_CATEGORIES06] [char](4) NOT NULL.
)
INSERT INTO Table1 (REFERENCE_NUMBER, PRODUCT) VALUES ('REF1'/span>,'PRODUCT1')
INSERT INTO Table1 (REFERENCE_NUMBER, PRODUCT) VALUES ('REF1','PRODUCT2')
INSERT INTO Table1 (REFERENCE_NUMBER, PRODUCT) VALUES ('REF1','PRODUCT3')
INSERT INTO Table2 (PRODUCT, PRODUCT_CATEGORIES06) VALUES ('PRODUCT1',1)
INSERT INTO 表2(PRODUCT, PRODUCT_CATEGORIES06) VALUES ('PRODUCT2',2)
INSERT INTO Table2(PRODUCT, PRODUCT_CATEGORIES06) VALUES ('PRODUCT3','GRN')
--在沒有產品類別的情況下,在哪里作業?
SELECT RPO.REFERENCE_NUMBER, PM.PRODUCT_CATEGORIES06
FROM Table1 RPO
INNER JOIN Table2 PM ON PM.PRODUCT = RPO.PRODUCT
WHERE RPO.REFERENCE_NUMBER = 'REF1'/span>
GROUP BY RPO.REFERENCE_NUMBER, PM.PRODUCT_CATEGORIES06
--不起作用,這個錯誤我正在努力尋找解決方案。
SELECT RPO.REFERENCE_NUMBER, PM.PRODUCT_CATEGORIES06
FROM Table1 RPO
INNER JOIN Table2 PM ON PM.PRODUCT = RPO.PRODUCT
WHERE PM.PRODUCT_CATEGORIES06 = 1
AND RPO.REFERENCE_NUMBER = 'REF1'
GROUP BY RPO.REFERENCE_NUMBER, PM.PRODUCT_CATEGORIES06
PM.PRODUCT_CATEGORIES06 = 1
1未參考的是一個int。把它改成一個字串,因為你的列資料是一個字串:PM.PRODUCT_CATEGORIES06 = '1'/span>
