Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. SQL does my head in

SQL does my head in

Scheduled Pinned Locked Moved The Lounge
databasequestion
42 Posts 24 Posters 115 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    Chris Maunder
    wrote on last edited by
    #1

    LEN (Transact-SQL) Returns the number of characters of the specified string expression, excluding trailing blanks So

    > print len('hello')

    5

    and

    > print len(' ')

    0

    Hands up who has ever noticed the "excluding trailing blanks" bit? Up until an hour ago, not me. Which boggles my mind.

    cheers Chris Maunder

    S Richard DeemingR V J OriginalGriffO 14 Replies Last reply
    0
    • C Chris Maunder

      LEN (Transact-SQL) Returns the number of characters of the specified string expression, excluding trailing blanks So

      > print len('hello')

      5

      and

      > print len(' ')

      0

      Hands up who has ever noticed the "excluding trailing blanks" bit? Up until an hour ago, not me. Which boggles my mind.

      cheers Chris Maunder

      S Offline
      S Offline
      Slacker007
      wrote on last edited by
      #2

      Are you secretly trying to ask a programming question in the Lounge? :-D

      C 1 Reply Last reply
      0
      • C Chris Maunder

        LEN (Transact-SQL) Returns the number of characters of the specified string expression, excluding trailing blanks So

        > print len('hello')

        5

        and

        > print len(' ')

        0

        Hands up who has ever noticed the "excluding trailing blanks" bit? Up until an hour ago, not me. Which boggles my mind.

        cheers Chris Maunder

        Richard DeemingR Offline
        Richard DeemingR Offline
        Richard Deeming
        wrote on last edited by
        #3

        Chris Maunder wrote:

        Hands up who has ever noticed the "excluding trailing blanks" bit?

        Slowly raises hand, expecting to be hit with a deluge of SQL questions. :~ :laugh:


        "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

        "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

        1 Reply Last reply
        0
        • S Slacker007

          Are you secretly trying to ask a programming question in the Lounge? :-D

          C Offline
          C Offline
          Chris Maunder
          wrote on last edited by
          #4

          The only question I'd be asking is "am I blind and who let me near a keyboard?"

          cheers Chris Maunder

          1 Reply Last reply
          0
          • C Chris Maunder

            LEN (Transact-SQL) Returns the number of characters of the specified string expression, excluding trailing blanks So

            > print len('hello')

            5

            and

            > print len(' ')

            0

            Hands up who has ever noticed the "excluding trailing blanks" bit? Up until an hour ago, not me. Which boggles my mind.

            cheers Chris Maunder

            V Offline
            V Offline
            Vark111
            wrote on last edited by
            #5

            print len(' ')

            Those look like leading blanks to me, not trailing blanks.

            C C N 3 Replies Last reply
            0
            • C Chris Maunder

              LEN (Transact-SQL) Returns the number of characters of the specified string expression, excluding trailing blanks So

              > print len('hello')

              5

              and

              > print len(' ')

              0

              Hands up who has ever noticed the "excluding trailing blanks" bit? Up until an hour ago, not me. Which boggles my mind.

              cheers Chris Maunder

              J Offline
              J Offline
              jschell
              wrote on last edited by
              #6

              Chris Maunder wrote:

              Hands up who has ever noticed the "excluding trailing blanks" bit?

              Me. It amazed me the first time I discovered it as well. I only figured it out after trying to figure out why some code was failing to behave as it should. I added documentation to the stored procedure to clearly call it out, so the next developer (perhaps even me) would not be surprised either. I believe, but I could be mistaken, it only applies to a the data type 'char'. Your constant is a 'char'. It behaves as expected with 'varchar'.

              S 1 Reply Last reply
              0
              • V Vark111

                print len(' ')

                Those look like leading blanks to me, not trailing blanks.

                C Offline
                C Offline
                Chris Maunder
                wrote on last edited by
                #7

                Exactly!

                cheers Chris Maunder

                OriginalGriffO 1 Reply Last reply
                0
                • J jschell

                  Chris Maunder wrote:

                  Hands up who has ever noticed the "excluding trailing blanks" bit?

                  Me. It amazed me the first time I discovered it as well. I only figured it out after trying to figure out why some code was failing to behave as it should. I added documentation to the stored procedure to clearly call it out, so the next developer (perhaps even me) would not be surprised either. I believe, but I could be mistaken, it only applies to a the data type 'char'. Your constant is a 'char'. It behaves as expected with 'varchar'.

                  S Offline
                  S Offline
                  Slacker007
                  wrote on last edited by
                  #8

                  I wonder if this has anything to do with CHAR is fixed length and VARCHAR is variable length?

                  J 1 Reply Last reply
                  0
                  • C Chris Maunder

                    LEN (Transact-SQL) Returns the number of characters of the specified string expression, excluding trailing blanks So

                    > print len('hello')

                    5

                    and

                    > print len(' ')

                    0

                    Hands up who has ever noticed the "excluding trailing blanks" bit? Up until an hour ago, not me. Which boggles my mind.

                    cheers Chris Maunder

                    OriginalGriffO Offline
                    OriginalGriffO Offline
                    OriginalGriff
                    wrote on last edited by
                    #9

                    If this was QA, I'd be fighting the urge - a strong urge - to reply "RTFM". But it isn't, so I don't have to... :laugh:

                    Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                    S C 2 Replies Last reply
                    0
                    • OriginalGriffO OriginalGriff

                      If this was QA, I'd be fighting the urge - a strong urge - to reply "RTFM". But it isn't, so I don't have to... :laugh:

                      Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

                      S Offline
                      S Offline
                      Slacker007
                      wrote on last edited by
                      #10

                      but you already did. :laugh: so now you don't have to. Even more :laugh: :laugh:

                      1 Reply Last reply
                      0
                      • C Chris Maunder

                        LEN (Transact-SQL) Returns the number of characters of the specified string expression, excluding trailing blanks So

                        > print len('hello')

                        5

                        and

                        > print len(' ')

                        0

                        Hands up who has ever noticed the "excluding trailing blanks" bit? Up until an hour ago, not me. Which boggles my mind.

                        cheers Chris Maunder

                        S Offline
                        S Offline
                        Slacker007
                        wrote on last edited by
                        #11

                        SELECT DATALENGTH(' ');

                        > 5

                        1 Reply Last reply
                        0
                        • OriginalGriffO OriginalGriff

                          If this was QA, I'd be fighting the urge - a strong urge - to reply "RTFM". But it isn't, so I don't have to... :laugh:

                          Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

                          C Offline
                          C Offline
                          Chris Maunder
                          wrote on last edited by
                          #12

                          This is the point: I've read the manual a million times. And I never noticed the proviso. What kills me, I think (apart from noisy bagpipes and people who don't indicate when turning) is that they've taken a method (LEN) that is used everywhere for the same thing - get the length of something - and bent it slightly. The length of something except for a bit at the end, sometimes. I propose that we, immediately, rename DATALENGTH to LEN, and LEN to LENWITHOUTTHETRAILINGSPACES, and to hell with the destruction this will cause to civilisation.

                          cheers Chris Maunder

                          N L 2 Replies Last reply
                          0
                          • C Chris Maunder

                            Exactly!

                            cheers Chris Maunder

                            OriginalGriffO Offline
                            OriginalGriffO Offline
                            OriginalGriff
                            wrote on last edited by
                            #13

                            So it should return 1? :laugh:

                            Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!

                            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                            "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                            1 Reply Last reply
                            0
                            • V Vark111

                              print len(' ')

                              Those look like leading blanks to me, not trailing blanks.

                              C Offline
                              C Offline
                              CodeWraith
                              wrote on last edited by
                              #14

                              And you will only make that mistake twice: For the first and the last time. :-)

                              I am endeavoring, ma'am, to construct a mnemonic memory circuit using stone knives and bearskins.

                              N 1 Reply Last reply
                              0
                              • C Chris Maunder

                                LEN (Transact-SQL) Returns the number of characters of the specified string expression, excluding trailing blanks So

                                > print len('hello')

                                5

                                and

                                > print len(' ')

                                0

                                Hands up who has ever noticed the "excluding trailing blanks" bit? Up until an hour ago, not me. Which boggles my mind.

                                cheers Chris Maunder

                                P Offline
                                P Offline
                                PIEBALDconsult
                                wrote on last edited by
                                #15

                                Sooo... there are probably other things for which you have not yet RTFMed?

                                C 1 Reply Last reply
                                0
                                • P PIEBALDconsult

                                  Sooo... there are probably other things for which you have not yet RTFMed?

                                  C Offline
                                  C Offline
                                  Chris Maunder
                                  wrote on last edited by
                                  #16

                                  Does this scare you? ;)

                                  cheers Chris Maunder

                                  1 Reply Last reply
                                  0
                                  • V Vark111

                                    print len(' ')

                                    Those look like leading blanks to me, not trailing blanks.

                                    N Offline
                                    N Offline
                                    Nish Nishant
                                    wrote on last edited by
                                    #17

                                    I see 2 trailing blanks and 2 leading blanks surrounding a single blank.

                                    Nish Nishant Consultant Software Architect Ganymede Software Solutions LLC www.ganymedesoftwaresolutions.com

                                    R G 2 Replies Last reply
                                    0
                                    • N Nish Nishant

                                      I see 2 trailing blanks and 2 leading blanks surrounding a single blank.

                                      Nish Nishant Consultant Software Architect Ganymede Software Solutions LLC www.ganymedesoftwaresolutions.com

                                      R Offline
                                      R Offline
                                      Rajesh R Subramanian
                                      wrote on last edited by
                                      #18

                                      This discussion is turning rather spacey.

                                      L 1 Reply Last reply
                                      0
                                      • R Rajesh R Subramanian

                                        This discussion is turning rather spacey.

                                        L Offline
                                        L Offline
                                        Lost User
                                        wrote on last edited by
                                        #19

                                        Now you are shooting blanks

                                        1 Reply Last reply
                                        0
                                        • C Chris Maunder

                                          This is the point: I've read the manual a million times. And I never noticed the proviso. What kills me, I think (apart from noisy bagpipes and people who don't indicate when turning) is that they've taken a method (LEN) that is used everywhere for the same thing - get the length of something - and bent it slightly. The length of something except for a bit at the end, sometimes. I propose that we, immediately, rename DATALENGTH to LEN, and LEN to LENWITHOUTTHETRAILINGSPACES, and to hell with the destruction this will cause to civilisation.

                                          cheers Chris Maunder

                                          N Offline
                                          N Offline
                                          Nathan Minier
                                          wrote on last edited by
                                          #20

                                          Or, I dunno, embrace object databases as a profession. Just saying.

                                          "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups