| Author |
Topic |
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 04:31:06
|
| HiI use this query...SELECT ModelNameFROM dbo.Blad1WHERE (RTRIM(ModelName) LIKE 'Volvo%')And that give me one result (volvo of course), but if I replace the "LIKE 'Volvo%'" to " = 'Volvo'", I dont get any result at all.The modelname is a nVarchar (50) column.What am I doing wrong?Regards |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 04:36:39
|
[code]DECLARE @Sample TABLE (RowID INT IDENTITY, ModelName NVARCHAR(50))INSERT @SampleSELECT 'Volvo 750' UNION ALLSELECT 'Volvo ' UNION ALLSELECT 'Volvo'SELECT * FROM @SampleSELECT *FROM @SampleWHERE RTRIM(ModelName) LIKE 'Volvo%' -- no need for RTRIMSELECT *FROM @SampleWHERE ModelName LIKE 'Volvo%'SELECT *FROM @SampleWHERE RTRIM(ModelName) LIKE 'Volvo' -- need for rtrimSELECT *FROM @SampleWHERE ModelName LIKE 'Volvo'[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 04:49:22
|
| Hi PesoI tryed your example and it worked just fine.But it doesnt work when I try my table..This work..WHERE (RTRIM(ModelName) LIKE 'Volvo%')But this does not..SELECT ModelNameFROM dbo.Blad1WHERE (RTRIM(ModelName) = 'Volvo') |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 04:52:15
|
Can you post FULL ddl for table (with COLLATION specification)? E 12°55'05.25"N 56°04'39.16" |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 05:06:43
|
| I'm sorry but what do you mean? |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 05:11:06
|
[code]CREATE TABLE [dbo].[test]( [a] [varchar](4) COLLATE Finnish_Swedish_CI_AS NULL, [d1] [datetime] NULL, [d2] [datetime] NULL, [peso] [tinyint] NULL, [x] [nvarchar](50) COLLATE Finnish_Swedish_CS_AI NULL)[/code]This is one of my test tables. You have to post the DDL for your table. E 12°55'05.25"N 56°04'39.16" |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 05:18:22
|
| Is this enough?ID Int IDENTITY NOT NULLModelID Int NULLModelName nvarchar (50)CodeListID int NOT NULLFinnish_Swedish_CI_AS |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 05:59:00
|
Still get same resultDECLARE @Sample TABLE (RowID INT IDENTITY, ModelName NVARCHAR(50) COLLATE Finnish_Swedish_CI_AS)INSERT @SampleSELECT 'Volvo 750' UNION ALLSELECT 'Volvo ' UNION ALLSELECT 'Volvo'SELECT *FROM @SampleWHERE RTRIM(ModelName) LIKE 'Volvo%' -- no need for RTRIMSELECT *FROM @SampleWHERE ModelName LIKE 'Volvo%'SELECT *FROM @SampleWHERE RTRIM(ModelName) LIKE 'Volvo' -- need for rtrimSELECT *FROM @SampleWHERE ModelName LIKE 'Volvo' E 12°55'05.25"N 56°04'39.16" |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 06:20:14
|
| Weird....This should work for me to then...SELECT *FROM @SampleWHERE RTRIM(ModelName) LIKE 'Volvo' -- need for rtrimBut it does not....SELECT ModelNameFROM dbo.Blad1WHERE (RTRIM(ModelName) LIKE 'Volvo')no result at all... |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 06:22:48
|
| When I mark the Word "Volvo" in the database I can see that there is several spaces after the word.... |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 06:42:24
|
Yes, just in my example above. E 12°55'05.25"N 56°04'39.16" |
 |
|
|
Kristen
Test
22859 Posts |
Posted - 2007-08-29 : 06:49:56
|
| What don't you update your table to remove the trailing spaces? (Obviously you need to do this to any new data which is added in the future!)UPDATE USET ModelName = RTRIM(ModelName)FROM dbo.Blad1 AS UWHERE ModelName LIKE '% ' -- Match values with trailing spacesThen an EQUALS test will work (and probably be faster than using LIKE), plus you won't get trailing spaces / various values / etc. on reports, data exports, etc.Kristen |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 06:58:11
|
| Hi KristenWhen I try to run your code I get 0 rows affected..Am I missing something? |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 07:19:46
|
Maybe you don't have SPACES (ASCII 32)?Maybe you have "hard spaces" (ASCII 160)? E 12°55'05.25"N 56°04'39.16" |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 07:21:26
|
[code]DECLARE @Sample TABLE (RowID INT, ModelName NVARCHAR(50))INSERT @SampleSELECT 1, 'Volvo 750' UNION ALLSELECT 2, 'Volvo ' UNION ALLSELECT 3, 'Volvo' + CHAR(160) UNION ALLSELECT 4, 'Volvo'SELECT *, '_' + ModelName + '_'FROM @SampleSELECT *FROM @SampleWHERE RTRIM(ModelName) LIKE 'Volvo%' -- no need for RTRIMSELECT *FROM @SampleWHERE ModelName LIKE 'Volvo%'SELECT *FROM @SampleWHERE RTRIM(ModelName) LIKE 'Volvo' -- need for rtrimSELECT *FROM @SampleWHERE ModelName LIKE 'Volvo'[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 07:22:03
|
| Can I check what type it is? |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 07:26:58
|
SELECT * FROM dbo.Blad1 WHERE ModelName LIKE '%' + CHAR(160) + '%' E 12°55'05.25"N 56°04'39.16" |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 07:31:47
|
| This give no result..SELECT ModelNameFROM dbo.Blad1WHERE (RTRIM(ModelName) LIKE 'Volvo' + CHAR(160)) |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-08-29 : 08:15:43
|
SELECT ModelNameFROM dbo.Blad1WHERE RTRIM(ModelName) LIKE 'Volvo%' + CHAR(160) + '%' E 12°55'05.25"N 56°04'39.16" |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 08:25:19
|
| HiYes that give me results, do you know how I can replace char(160)? |
 |
|
|
magmo
Aged Yak Warrior
558 Posts |
Posted - 2007-08-29 : 08:37:23
|
| HiI did it this way....UPDATE USET ModelName = REPLACE(ModelName, CHAR(160),'')FROM dbo.Blad1 AS UUPDATE USET ModelName = RTRIM(ModelName)FROM dbo.Blad1 AS UWHERE ModelName LIKE '% ' -- Match values with trailing spacesAnd now it works fine.Thanks for all help! |
 |
|
|
Next Page
|